侧边栏壁纸
博主头像
D博主等级

  • 累计撰写 35 篇文章
  • 累计创建 138 个标签
  • 累计收到 3 条评论

Java基础篇⑪——继承

D
D
2022-03-21 / 0 评论 / 0 点赞 / 260 阅读 / 1,336 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

继承

概述

  • 继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性方法

  • 格式:

    public class 子类名 extends 父类名{}
    
    • 父类,也称为基类超类
    • 子类,也称为派生类
  • 继承中子类的特点:

    • 子类可以有父类的内容
    • 子类还可以有自己特有的内容
  • 继承的用途:一般用于多个类中具有相同的特征(属性和方法),将相同的特征提取出来作为父类,然后多个类再继承父类相同的特征。

继承的好处和弊端

  • 好处:

    • 提高了代码的复用性(多个类相同的成员可以放在同一个类中)
    • 提高了代码的维护性(如果方法的代码需要修改,修改一处即可)
  • 弊端:

    • 继承让类与类之间产生了关系,类的耦合性增强,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性。

继承中变量的访问特点

  • 在子类方法中访问一个变量(自内向外)
    • 子类局部范围找
    • 子类成员范围找
    • 父类成员范围找
    • 继续往上找(若父类也有自己的父类)

super

  • super关键字的用法和this关键字的用法相似

    • this:代表本类对象的引用
    • super:代表父类存储空间的标识(可以理解为父类对象的引用)
    关键字访问成员变量访问构造方法访问成员方法
    thisthis.成员变量访问本类成员变量this(...)访问本类构造方法this.成员方法(...)访问本类成员方法
    supersuper.成员变量访问父类成员变量super(...)访问父类构造方法super.成员方法(...)访问父类成员方法

继承中构造方法的访问特点

  • 子类中所有的构造方法默认都会访问父类中的无参构造方法

  • 原因:

    • 因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化。
    • 每一个子类构造方法的第一条语句默认是:super();
  • 当父类中没有无参构造方法,只有带参构造方法时,有两种解决方案:

    • 通过super关键字在子类构造方法中调用父类的带参构造方法
    • 在父类中自己提供一个无参构造方法

继承中成员方法的访问特点

  • 通过子类对象访问一个方法
    • 子类成员范围找
    • 父类成员范围找
    • 继续往上找(若父类也有自己的父类)

方法重写

  • 概述

    • 子类中出现了和父类一模一样的方法声明(包括返回值和参数类型,但不包括权限符)。
  • 应用

    • 当子类需要父类的功能,而功能主体子类有自己特有的内容时,可以重写父类中的方法。这样,即继承了父类的功能,又定义了子类特有的内容。
  • @Override

    • 是一个注解
    • 可以帮助我们检查重写方法的方法声明的正确性
  • 重写方法格式一般为:

    public class Fu{
        public void show(){
            int f = 0;
            System.out.println("f的值为:" + f);
        }
    }
    
    public class Zi extends Fu{
        public void show(){
            System.out.println("调用子类的show方法");
            super();   // 当子类重写方法是在父类方法上添加功能时,可以在添加功能后直接调用super();
        }
    }
    

方法重写的注意事项

  • 私有方法不能被重写(父类私有成员子类是不能继承的)
  • 子类方法访问权限不能比父类的低(public > 默认 > 私有)

继承的注意事项

  • Java中类只支持单继承,不支持多继承
  • Java中类支持多层继承
0

评论区