• day6_inheritance_polymorphis


    day6学习内容

    回顾封装

    • 概念 : 属性私有化(private),提供公共(public) setter&getter方法访问私有属性
    • 目的:提高数据安全性(需要进行额外的控制)

    抽象

    • 前提: 具有相同属性和方法

    • 使用: 1. 对象到类

      ​ 2. 类到父类: 满足 a.将相同属性方法类抽象 b.is-a

    继承

    • object类是所有类的父类

    • 父类(超类 基类):类抽象到父类,必须满足is-a关系

      is-a: A is-a B 即A是B中的一个

    • 父类更抽象,子类更具体

    • 将相同的属性和方法抽象到父类,子类继承父类的public和protected的属性和方法.

    • 优点:提高维护性和扩展性

    • 注意: 子类继承父类后,子类的构造方法会自动调用父类的无参数的构造方法.

      如果父类的构造方法有参,就将子类中的构造方法写成对应的构造方法

      子类用super(参数)调用父类的构造方法

      子类用set 和get 方法来调用取和存属性

      重写:

      (与重载区分,重载是同一个类中,比较方法三要素)是在父子类中,方法名,参数,返回值类型都相同.子类的权限不能比父类更严格

      用于解决方法在父类中,每个子类对其有自己的用法

      • 可以直接全部重写,
      • 也可以部分重写,用super关键字来调用父类的方法.

      关键字

      • extends:子类单一继承一个父类
      • implements: 变相的使java多继承的特性

    tip: 1. 注意使用@Override 注解,检查是否是父类方法的重写,每次子类对父类重写之上都写上

    1. 同名变量.就近原则

    2. 初始化顺序: 类中先静态后非静态,先父类后子类

      父类为默认构造方法时,子类会在构造方法中调用默认的无参的构造方法

    多态(理解难点)

    • 同一个对象在不同的环境(开发环境 运行环境)下表现出不同的类型(开发中父类.运行环境中子类)
    • 使用:
      • 在声明数据类型时,能用父类用父类.能用接口用接口(往大用)
      • 子类重写了父类的方法时体现

    ​ 意义:

    1. 消除类型之间的耦合关系
    2. 可替换性
    3. 可扩充性
    4. 接口性
    5. 灵活性
    6. 简化性
    • 子类转父类自动转,父类转子类强制类型转换

      Pet pet2 = new Cat("猫猫");//用子类的构造方法,构造出一个Cat类型的pet2,自动转换为父类Pet类
      ((Cat)pet2).catchMouse();//将父类Pet类型的pet2强转成子类Cat类使用子类的方法
      
    • 对父类类型判断是哪种子类时

      pet instanceof Dog//是相同子类型返回ture 不同类型返回false
      
  • 相关阅读:
    C++ Primer高速入门之六:数组和指针
    C++ Primer高速入门之六:数组和指针
    C++ Primer高速入门之六:数组和指针
    大学生毕业卖蔬菜,成就财富梦想
    美女毕业去养牛,创造自主牛肉品牌
    情侣合开夫妻店,爱情和努力让他们生活走向光明
    从3万元创业资金到年销售3亿元,看他是如何做到的?
    “海归”创办服装公司,全国竟拥有2000多家网点?
    90后卖地瓜,仅仅一个月就可以赚2万元
    老头创业弄养殖,每亩收入3万元,水蛭为啥这么值钱?
  • 原文地址:https://www.cnblogs.com/zzz1zzz/p/14264725.html
Copyright © 2020-2023  润新知