public abstract class C {
public abstract void abstractTest(); //抽象方法
public String team="parent";
//普通方法
public void abc(){
System.out.println("123");
};
}
//普通类继承抽象类
public class D extends C {
//抽象方法必须实现
@Override
public void abstractTest() {
System.out.println("子类抽象实现方法");
}
//普通方法可实现也可以不实现,实现了就需要你重写该方法的实现
public void abc(){
System.out.println("子类abc");
};
public void print(){
this.team = "son";//将子类中的属性的引用指向的是父类属性的地址(即子类继承了父类的属性)
System.out.println(super.team); //输出是son
System.out.println(this.team); //输出是son
}
public static void main(String[] args) {
D d=new D();
d.abc(); //输出子类abc
C c=new D();//父类的引用指向了子类的对象,体现了java对的多态性
System.out.println(c.team); //输出parent(多态的体现,子类可以调用父类的属性)
c.abc();//输出子类abc(说明了父类的abc已经在子类中实现了)
c.abstractTest();
d.print();
}
}