• <--------------------------Java多态如何使用------------------------------>


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

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

      * C: 抽象类多态定义格式
        抽象类 变量名 = new 抽象类子类();
      * D: 接口多态定义的格式
        接口 变量名 = new 接口实现类();
      * E: 注意事项
        同一个父类的方法会被不同的子类重写。在调用方法时,调用的为各个子类重写后的方法。
    12 instanceof关键字
      * A: 作用
        可以通过instanceof关键字来判断某个对象是否属于某种数据类型。如学生的对象属于学生类,学生的对象也属于人类(测试的时候前父后子)

      *B:用法  

        声明父类变量名
    
        声明子类变量名
    
         Boolean b = s2 instanceof Person;//前父后子为flase (父属于子)   前面是子类变量名  后面是定义的父类
    
           System.out.println(b);

    13 多态-向上转型
      * A: 多态的转型分为向上转型与向下转型两种:

      * B: 向上转型:当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。
        使用格式:
        父类类型 变量名 = new 子类类型();
    14 多态-向下转型
      * A: 向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型。如果是直接创建父类对象,是无法向下转型的!

      使用格式:
        子类类型 变量名 = (子类类型) 父类类型的变量;
        如:Student stu = (Student) p; //变量p 实际上指向Student对象

      总结:
    向上转型:(子类转为父类,自动转型) 格式 :父类类型 变量名
    = new 子类类型(); 注:子类赋值给父类,那这时这个父类就能调用子类的方法
    向下转型:(父类转为子类,强制转型)
    格式: 子类类型 变量名 = (子类类型) 父类类型的变量;
    注:对于向下的类型转换,必须要显式指定,即必须要使用强制类型转换。并且父类型的引用必须指向子类的对象,即指向谁才能转换成谁。
         而直接创建的父类对象,是无法向下转型的;调用的还是子类的方法而并不是父类的方法。

    例子:

    父类:
    public
    class Fu { public int num=66; void show(){ System.out.println("Fu的显示"); } }
    子类:
    public class Zi extends Fu{
    public static int num=77;
    void show(){
        System.out.println("子类中的show方法");
    }
    }
    测试类:
    public class Test {
        public static void main(String[] args) {
            Fu f = new Zi();// 编译时期:参考应用类型变量所属的类 如果类中没有调用的方法 编译失败
            f.show();// 运行时期:引用类型变量所指的对象所属的类 并运行所属类中的方法
            //成员方法:编译看左边  运行看右边
            //成员变量:编译运行全看左边
            int a=f.num;
            System.out.println(a);
        }
    }

    15 多态的好处和弊端
      * 当父类的引用指向子类对象时,就发生了向上转型,即把子类类型对象转成了父类类型。
      * 向上转型的好处是隐藏了子类类型,提高了代码的扩展性。
      * 但向上转型也有弊端,只能使用父类共性的内容,而无法使用子类特有功能,功能有限制。
      总结: 创建多态在继承的关系上
        使用向下转型 *****
        使用instanceof 方法
        多态 运行看右边 编译的看左边 *****

  • 相关阅读:
    JavaScript简单的日历
    CSS动画实现滚动播放
    视频弹窗自动播放 关闭停止
    简单通过js实现轮播图
    switch case的应用
    显示、隐藏
    .container的应用
    用CSS对HTML进行初始化设置
    CSS Id 和 Class选择器
    给文字添加阴影效果
  • 原文地址:https://www.cnblogs.com/duguangming/p/10539043.html
Copyright © 2020-2023  润新知