继承:继承就是如果A类继承于B,在A中就可以使用B的方法,成员变量。也可以在A类中修改B的方法和属性。
因A继承B,如果实例化A,则会先实例化B,在实例化A(先有父,后有子)。
public class SuperClass {
public String name = "super_class";
public SuperClass(){
System.out.println("super_class instance");
}
public void title(String title){
System.out.println("super_class:"+title);
}
public static void distri(String distri){
System.out.println("super_class:"+distri);
}
}
public class ChildClass extends SuperClass{
public String name = "child_class";
public ChildClass(){
System.out.println("child_class instance");
}
public void title(String title){
System.out.println("child_class:"+title);
}
public static void distri(String distri){
System.out.println("child_class:"+distri);
}
}
public class Test {
public static void main(String[] args) {
SuperClass superClass = new ChildClass();
System.out.println(superClass.name);
superClass.title("title");
superClass.distri("dis");
}
}
结果:
super_class instance
child_class instance
super_class
child_class:title
super_class:dis
========================================
为什么superClass.title(“title”)输出的是child_class:title
为什么superClass.name是super_class
为什么superClass.distri(“dis”);是super_class:dis
=========================================
是因为我们定义实例化ChildClass的类型为SuperClass 。
所以这里superClass.name是super_class
superClass.distri(“dis”);是super_class:dis
而因为多态,所以这里superClass.title(“title”)输出的是child_class:title