zoukankan      html  css  js  c++  java
  • Java学习:面向对象的三大特征:封装性、继承性、多态性之继承性

    面向对象的三大特征:封装性、继承性、多态性。

    继承

    继承是多态的前提 ,如果没有继承,就没有多态。

    继承主要解决的问题就是:共性抽取。

    继承关系当中的特点:

    1. 子类可以拥有父类的“内容”
    2. 子类还可以拥有自己的专有的内容。

    继承的格式:

    在继承的关系中,”子类就是一个父类“。也就是说,子类可以被当做父类看待。
    例父类是员工,子类是讲师,那么“讲师就是一个员工”。关系:is-a。

    定义父类的格式:(一个普通的类的定义)
    public class 父类名称{
        //...
    }
    
    定义子类的格式:
    public class 子类名称 extends 父类名称{
        //...
    }

    区分子类重名的三种方法:

    • 局部变量: 直接写成员变量
    • 本类的成员变量: this.成员变量
    • 父类的成员变量: super.成员变量

    注意事项:
    无论是成员变量还是成员方法,如果没有都是向上找父类,绝不会向下找子类的

    • 重写(Override):方法名称一样,参数列表【也一样】。覆盖、覆写。
    • 重载(Overload):方法名称一样:参数列表【不一样】。

    方法覆盖重写的特点:创建的是子类对象,则优先用子类方法。

    方法覆盖重写的注意事项:

    1.必须保证父子类之间方法的名称相同,参数列表也相同。

    • @Override:写在方法前面,用来检测是不是有效的正确覆盖重写。
    • 这个注解就算不写,只要满足要求,也是正确的方法覆盖重写。

    2.子类方法的返回值必须【小于等于】父类方法的返回值范围。

    • 小扩展提示:java.Lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object子类。

    3.子类方法的权限必须【大于等于】父类方法的权限修饰符。

    • 小扩展提示:public > protected > (default) > private
    • 备注:(default)不是关键字default,而是什么都不写,留空。

    super和this关键字的用法

    扩展:
    子类必须调用父类的构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个。

    super关键字用来访问父类的类容,而this关键字用来访问父类内容。用法也有三个:

    1. 在本类的成员方法中,访问本来的成员变量。
    2. 在本类的成员方法中,访问本类的另一个成员方法。
    3. 在本类的构造方法中,访问本类的另一个构造方法。

    在第三种用法要注意:

    • A:this(...)调用也必须是构造方法的第一个语句,唯一一个。
    • B:super和this两构造调用,不能同时使用。
  • 相关阅读:
    读书笔记之理想设计的特征
    一些javascript 变量声明的 疑惑
    LINQ 使用方法
    Google MySQL tool releases
    读书笔记之设计的层次
    EF之数据库连接问题The specified named connection is either not found in the configuration, not intended to be used with the Ent
    转载 什么是闭包
    javascript面向对象起步
    Tips
    数据结构在游戏中的应用
  • 原文地址:https://www.cnblogs.com/cainiao-chuanqi/p/11110165.html
Copyright © 2011-2022 走看看