zoukankan      html  css  js  c++  java
  • 阿花宝宝 Java基础笔记 之 多态区分

     多态
     Pet p = new Dog();
     前边是父类类型 后面是子类类型;
     都是p.mm();
    1、如果父类有 子类有
       那么调用 子类的
    2、如果父类有 子类没有
       那么调用  父类的
    3、如果父类没有 子类有
       那么 报错!!!!
    一 。 多态
       父类类型  父类引用 = new 子类类型();
       多态 三要素:
       1 、  要有继承关系  extends
       2 、  要有方法重写  
     第一种情况子类没有重写父类同名方法时,子类对象调用的是父类的方法
     第二种情况  父类没有此方法,无法使用父类对象去调用(编译不能通过)
     编译时: 看写的对象是什么类型  就访问什么类型
     运行时: 会根据传进来的真实类型来调用相应方法
     JVM动态绑定机制:根据运行时的真实类型去调用相应的方法
       3 、  要有父类引用指向子类对象
    二 、 抽象方法
      1 、 抽象方法没有具体实现 访问修饰符 abstract  返回类型 方法名()

      2 、 抽象方法所在的类必须是抽象类
           访问修饰符 abstract class() 类名
      3 、 子类必须实现抽象服了的抽象方法  除非子类也是抽象的
      4 、 抽象类中可以有抽象方法 也可以没有
      5 、 抽象类不可以被实例化
    三  向下转型和向下转型
    向下转型:
      (子类类型)子类引用 = (子类类型)父类引用
       向下转型后才能调用子类特有的方法
     
       当要转换类型与父类引用指向的子类类型不一致时候  报错。。。。。。。

       解决办法
       使用 instanceof 关键字判断类型
      
    四 、父类类型作为方法的返回值
      访问修饰符 父类类型 方法命(参数){
     return 具体子类对象;

       测试类  :
       1. 询问: 要打印什么呀?  (电视类还是视频)
       2. 根据询问的结果 返回一个具体的子类对象  
       3.

  • 相关阅读:
    poj 1113 Wall 凸包的应用
    NYOJ 78 圈水池 (入门级凸包)
    Monotone Chain Convex Hull(单调链凸包)
    poj Sudoku(数独) DFS
    poj 3009 Curling 2.0(dfs)
    poj 3083 Children of the Candy Corn
    Python join()方法
    通过FISH和下一代测序检测肺腺癌ALK基因融合比较
    华大病原微生物检测
    NGS检测ALK融合大起底--转载
  • 原文地址:https://www.cnblogs.com/ECS666666/p/5339716.html
Copyright © 2011-2022 走看看