多态测试,补充静态资源不可被继承、重写,各是各的##
代码注释很详细,学多态的可以认真看看包你理解多态
public class TestPloymorphic {
public static void main(String[] args) {
//口诀1:父类引用 指向子类对象
Fu f=new Zi();
//口诀2:编译看左(只能调用父类的)
//运行看右(如果方法被重写,执行子类的方法体)
System.out.println(f.name);
f.eat(); //父类方法,执行子类的方法体
// f.play(); 这句是错误的 多态对象不能调用子类扩展
f.sleep(); //没被重写,执行父类sleep方法
f.age=18;//静态资源各是各的不可继承重写
f.game();
}
}
/*
* 多态测试:成员变量、方法、静态资源(不可被继承)
*/
class Fu{
String name="父类"; //成员变量
static int age;
public void eat() {
System.out.println("父类吃");
}
public void sleep() {
System.out.println("父类睡觉");
}
public static void game() {
System.out.println("fu1");
}
}
class Zi extends Fu{
String name="子类";
static int age;
@Override
public void eat() {
System.out.println("子类重写吃");
}
public void play() {
System.out.println("子类扩展的方法多态对象不可调用");
}
//静态的各是各的不能重写
public static void game() {
System.out.println("");
}
}
补充很重要:
补充不能继承的有:静态资源、private修饰的,final修饰的类,构造方法
多态怎么统一的调用标准?—只能调用父类的功能属性,子类重写调用的也知识子类的方法体;要想调用子类的东西必须new子类对象。
多态好处:
增强程序的通用性/统一标准