day08 多态性 instanceof
/* 多态:可以理解为事物存在的多种体现形态、 1,多态的体现 父类的引用指向了自己的子类的对象。 父类的引用也可以接受自己的子类对象。 2,多态的前提 必须是类与类之间有关系。要么继承,要么实现。 通常还有一个前提:存在覆盖 3,多态的好处 多态的出现大大提高程序的扩展性。 4,多态的弊端 提高了扩展性,但是只能使用弗雷的引用访问父类中的成员 5,多态的应用 多态自始至终都是子类在做着变化 instanceof是Java的一个二元操作符,和==,>,<是同一类东东。 由于它是由字母组成的,所以也是Java的保留关键字。 它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。
================================================================ 在多态中成员函数(非静态)的特点:
在编译时期,参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。
在运行时期,参阅对象所属的类中是否有调用方法。
简单总结就是:编译时看左边类,运行看右边类;
在多态中,成员变量和静态函数的特点:
无论编译和运行,都参考左边(引用型变量所属的类) */ abstract class animal { abstract void eat(); } class cat extends animal { public void eat() { System.out.println("eat rou"); } public void sleep() { System.out.println("sleep"); } } class test { public static void main(String[] args) { animal c = new cat();//类型提升,向上转型(强制类型转换) //如果想要调用猫的特有方法,如何操作? //强制将父类的引用,转成子类类型,向下转型、 c.eat(); cat d = (cat) c; d.sleep(); } }
Object:是所有对象的直接或间接父类。
该类中定义的肯定是所有对象都具备的功能、