zoukankan      html  css  js  c++  java
  • 继承


    继承的概述
    继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。
    继承的格式
    pulic class 子类名 extends 父类名{}
    说明:父类,也被成为基类、超类
    继承中子类的特点
    子类可以有父类的内容
    子类还可以有自己特有的内容

    继承的好处和弊端
    继承的好处
    提高了代码的复用性(多个类的相同成员可以放到同一个类中)
    提高了代码的维护性(如果方法的代码需要修改,修改一处即可)
    继承的弊端
    继承让类与类直接产生关系,类的耦合性增强了,当父类发送变化子类的实现也不得不跟着变化,削弱了子类的独立性
    什么时候需要使用继承
    继承体现的关系:is a
    假设法:我有两个类A和B,如果他们满足A是B的一种,或者B是A的一种,就说明他们存在继承关系,就考虑用继承来体现,否则不能滥用继承
    举例:苹果和水果,猫和动物

    继承中变量的访问特点
    在子类中访问一个变量,首先在子类局部范围找,然后在子类成员范围找,再是在父类成分范围在,最后如果都没有就报错(不考虑父亲的父亲...)

    super关键字
    super关键字的用法和this关键字的用法相似
    this:代表本来对象的应用
    super:代表父类存储空间的标识(可以理解为父类对象的引用)

    用法

    this关键字
    访问成员变量:this.成员变量;
    访问构造方法:this.构造方法(...);
    访问成员方法:this.成员方法(...);
    super关键字
    访问成员变量:super.成员变量;
    访问构造方法:super.构造方法(...);
    访问成员方法:super.成员方法(...)

    继承中构造方法的访问特点
    子类中所有的构造方法默认都会访问父类的无参构造方法,因为子类会继承父类的数据,可能还会使用父类的数据。所以子类初始化前,一定要完成父类数据的初始化,每一个子类的构造方法的第一条语句默认都是:super()

    如果父类中没有无参构造方法,只有带参构造方法,该怎么办?
    方式1:通过使用super关键字去显示的调用父类的带参构造方法
    方式2:在父类中自己提供一个无参构造方法
    推荐:自己给出无参构造方法

    继承中成员方法的访问特点
    首先通过子类访问一个方法,然后子类的成员范围找,再是父类的成员范围找,如果都没找到就报错(不考虑父亲的父亲)

    方法的重写
    概述:子类中出现了和父类中一模一样的方法声明
    应用:当子类需要父类的功能,而子类有自己特有内容时,可以重写父类中的方法,这样既沿袭了父类的功能,有定义了子类特有的内容

    @Override
    是一个注解
    可以帮助我们检查重写方法的方法声明的正确性

    方法重写的注意事项
    私有方法不能被重写(父类私有成员子类不能继承的)
    子类方法访问权限不能更低(public>默认>私有),否则代码编译不通过

    Java中重写的注意事项
    Java中的类支持单继承,不支持多继承
    Java中的类支持多层继承

  • 相关阅读:
    golang --写test测试用例
    Golang ---testing包
    golang --Converting and Checking Types
    python ---升级所有安装过的package
    给定数组和某个值,求和等于某值的序号
    https://leetcode-cn.com/
    Java8内存模型—永久代(PermGen)和元空间(Metaspace)
    TJ Holowaychuk是怎样学习编程的?
    Idea代码可视化插件
    python3插入数据
  • 原文地址:https://www.cnblogs.com/yonggang/p/15043483.html
Copyright © 2011-2022 走看看