1.一个对象被转换成string时,会调用对象的toSting方法
public class demo7 {
private water w=new water();
private String s="string";
public static void main(String args[]){
demo7 d=new demo7();
System.out.println(d);
}
public String toString(){
return s+w;
}
}
class water{
private String s;
water(){
System.out.println("water");
s="construct";
}
public String toString(){
return s;
}
}
2.super调用的父类中的方法,继承之后的类在初始化的时候,会先初始化父类。
public class demo8 extends demo9{
demo8(){
System.out.println("demo8");
}
public void doti(){
super.doti();
System.out.println("doti2");
}
public static void main(String args[]){
demo8 d=new demo8();
d.doti();
}
}
class demo9{
demo9(){
System.out.println("demo9");
}
public void doti(){
System.out.println("deti1");
}
}
demo9
demo8
deti1
doti2
3.子类继承父类之后,在向上转型的时候,会丢失子类中的新增方法。
4.组合就是在一个类中new另一个类,这样可以调用另一个类的所有方法。
继承是一个类可以继承过来另一个类的所有方法,并且可以增添新的方法。
如何选择是用组合还是选择是用继承在于查看类是否需要向上转型,如果需要向上转型就可以用继承。
5。类的初始化流程:子类继承父类,static,super等 有这些条件的时候的一个顺序
看java编程思想95页的代码。