多态(instanceof)

多态调用的三种格式
    * A:多态的定义格式:
    * 就是父类的引用变量指向子类对象
        父类类型 变量名 = new 子类类型();
    变量名.方法名();

    * B: 普通类多态定义的格式
          父类 变量名 = new 子类();

    * C: 抽象类多态定义格式    
        抽象类 变量名 = new 抽象类子类();
    ;
       * D: 接口多态定义的格式
                接口 变量名 = new 接口实现类();

成员方法:编译看左边 运行看右边(父类有子类没有 调用父类 父类 有 子类有 调子类) f.show();
成员变量:编译运行都看 左边 int a = f.num; 父类中的num
* E: 注意事项 同一个父类的方法会被不同的子类重写。在调用方法时,调用的为各个子类重写后的方法。 12 instanceof关键字 * A: 作用 可以通过instanceof关键字来判断某个对象是否属于某种数据类型。如学生的对象属于学生类,学生的对象也属于人类 boolean b=a inatanceof b// 前子后父 true 测试的时候前父后子 多态-向下转型 * A: 向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型。如果是直接创建父类对象,是无法向下转型的! 使用格式: 子类类型 变量名 = (子类类型) 父类类型的变量; 如:Student stu = (Student) p; //变量p 实际上指向Student对象 package cn.lijun.demo2; public abstract class Fu { public abstract void method(); } package cn.lijun.demo2; public class Zi extends Fu{ public void method() { System.out.println("我是子类的方法"); } } package cn.lijun.demo2; public class Text { public static void main(String[] args) { Fu f = new Zi(); f.method(); } }
原文地址:https://www.cnblogs.com/qurui1998/p/10537796.html