父类引用指向子类对象
Fu f = new Zi(); f.(成员方法) //子类有的方法而父类没有,则父类不能直接访问子类的方法,会报错
子类自己访问子类(本类)的成员方法方法
创建子类对象Zi z = new Zi(); z.(成员方法)
当一个子类有多个重复的方法时,普通的调用会造成代码增多 举例:
Cat c = new Cat();
c.eat();
c.sleep();
Cat c1 = new Cat();
c.eat();
c.sleep();
此时可用改进的方式:
public static void useCat(Cat c){ //此处的Cat为子类名, c 为对象名. 调用改进版的方式 是在主方法中, useCat(c);useCat(2)
c.eat();
c.sleep();
}
-----------------------------------------------------------------------------------------
把父类引用赋值给子的引用(原因是父类不能访问子类的特有功能,要访问就得再new一个zi类对象,所以有以上向下转型)
向上转型: Fu f = new Zi(); 向下转型: Zi z = (Zi)f;
强转 Zi z = (Zi)f;