Java 继承

发布于 2024-10-26 05:56:49 字数 1582 浏览 8 评论 0

继承是一种 类和类之间的关系,是 面向对象系统的基石。我们可以把共性的结构和行为放到父类中,子类可以通过继承复用父类中的代码,并且根据自己的需要进行扩展。使用 extends 关键字表示继承关系。利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为 超类(super class),派生类称为 子类(subclass)

  • java 的继承是单继承, 一个子类只能继承一个父类
  • 子类会继承父类所有非 private 方法和变量,除了构造函数
  • 生成 子类对象或者实例时,Java 默认地首先调用 父类的不带参数 的构造方法,接下来再调用子类的构造方法,生成子类对象
  • 方法覆盖: 子类中有和父类中非 private 的 同名方法,且返回类型和参数表也完全相同,就会覆盖从父类继承来的方法。子类中通过 super 关键字调用父类被重写的方法
// cat Graph.java
class Graph {
    String name;
    public Graph(){}
    public Graph(String name) {
        this.name = name;
    }
    public void show() {
        System.out.println("I'm a graph");
    }
}

// cat Rectangle.java
class Rectangle extends Graph {
    int width;
    int height;

    public Rectangle(){
        // this 表示对当前对象的引用
        // 子类构造函数中,一般第一条语句是`super();`,表示调用父类构造函数
        // 构造函数的第一语句既不是 this() 也不是 super() 时,就会隐含的调用 super()
        super();
    }

    public Rectangle(String name) {
        super(name);
    }

    public Rectangle(int width, int height,String name) {
        // this 表示对当前对象的引用
        this(name);
        System.out.println("My width is:" + width + "my height is :"+ height);
    }

    public void show() {
        // Retangle 就覆盖了 Graph 的 show 方法,同时在 show 方法中通过 super.show();调用了父类的 show 方法
        super.show();
        System.out.println("at the same time I'm a Rectangle");
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

我为君王

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

xu362930323

文章 0 评论 0

缱倦旧时光

文章 0 评论 0

qq_eXruk9

文章 0 评论 0

遂心如意

文章 0 评论 0

guojiayue1

文章 0 评论 0

愿与i

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文