package equality;
class WaterSource{
private String s;
WaterSource(){
System.out.println("WaterSource()");
s="Constructed";
}
public String toString(){
return s;
}
}
public class demo6 {
private String value1,value2,value3,value4;//不是基本类型
private WaterSource source=new WaterSource();
private int i;//基本类型
private float f;//基本类型
public String toString(){
return
"value1="+value1+" "+
"value2="+value2+" "+
"value3="+value3+" "+
"value4="+value4+"\n"+
"i="+i+" "+"f="+f+" "+
"source="+source;
}
public static void main(String[] args){
demo6 sprinklers=new demo6();
System.out.println(sprinklers);
}
}
WaterSource()
value1=null value2=null value3=null value4=null
i=0 f=0.0 source=Constructed
不是基本类型的初始化是null,基本类型就是0;而且其中的toString 方法也是会自动调用的。
package equality;
class Cleanser{
private String s="Cleanser";
public void append(String a){s+=a;}
public void dilute(){append("dilute()");}
public void apply(){append("apply()");}
public void scrub(){append("scrub()");}
public String toString(){return s;}
public static void main(String[] args){
Cleanser x=new Cleanser();
x.dilute();x.apply();x.scrub();
System.out.println(x);
}
}
public class demo7 extends Cleanser{
public void scrub(){
append("Detergent.scrub()");
super.scrub();//父类的scrub()
}
public void foam(){append("foam()");}
public static void main(String[] args){
demo7 x=new demo7();
x.dilute();
x.apply();
x.scrub();
x.foam();
System.out.println(x);
System.out.println("Testing base class:");
Cleanser.main(args);
}
}
Cleanserdilute()apply()Detergent.scrub()scrub()foam()
Testing base class:
Cleanserdilute()apply()scrub()
从结果可以分析到,对象是先安排本类的对象再如果本类中没有再找到父类,一层层找上去的。