1 知识架构
2 练习
package cn.tedu.oop;
//面向对象oop之多态 的测试
public class TestPolymorphic {
public static void main(String[] args) {
// Animal1 m=new Animal1; 抽象类不可以实例化
Animal1 z=new Pig();//Pig类创建出来的对象交给引用类型Animal类型的变量z
Pig z1=new Pig();
z.play();//小猪喜欢在圈里玩!编译看左边,运行看右边
z.study();//小猪喜欢在圈里玩! 父类抽象方法study,被子类Pig重写
System.out.println(z.age);//0 成员变量继承父类
System.out.println(z.name);//null 成员变量继承父类
System.out.println(z1.age);//89 Pig类的属性
System.out.println(z1.name);//null 子类没有属性继承父类属性
}
}
abstract class Animal1{
String name;
int age;
public void play(){
System.out.println("小动物们又来一起了!!");
}
private void eat(){
System.out.println("今天小动物们热爱敲代码,啥也不想吃~");
}
public abstract void study();
}
class Pig extends Animal1{
int age=89;
@Override//完成抽象父类的抽象功能study
public void study() {
System.out.println("小猪开始学习Java啦~");
}
@Override//重写父类的play功能
public void play(){
System.out.println("小猪喜欢在圈里玩!");
}
// @Override 被私有化private的方法不能被重写
// private void eat(){
// System.out.println("今天小猪干了3碗饭~");
// }
}