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.

  • 相关阅读:
    BWList of logged on users in the Portal
    BASIS About Profile
    B/S C/S 打印
    程序员得学习观各种好书推荐
    ORACLE面试测试题目
    oracle经典20题(参考答案)
    程序员得学习观各种好书推荐
    Oracle笔试题
    Oracle笔试题
    Oracle里面常用的数据字典有哪些?
  • 原文地址:https://www.cnblogs.com/ECS666666/p/5339716.html
Copyright © 2011-2022 走看看