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:是所有对象的直接或间接父类。
该类中定义的肯定是所有对象都具备的功能、

原文地址:https://www.cnblogs.com/WDKER/p/5619775.html