温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何继承java超类

发布时间:2026-10-11 04:33:31 来源:亿速云 阅读:84 作者:小樊 栏目:编程语言

在 Java 中,**继承(Inheritance)**是通过 extends 关键字来实现的。子类可以继承父类的属性和方法,从而实现代码复用和扩展。

下面从基础到进阶给你讲清楚。


一、最基本的继承方式

// 父类(超类)
class Animal {
    String name;

    void eat() {
        System.out.println(name + "在吃东西");
    }
}

// 子类(继承父类)
class Dog extends Animal {
    void bark() {
        System.out.println(name + "在汪汪叫");
    }
}

使用:

public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.name = "小黑";
        dog.eat();   // 继承自 Animal
        dog.bark();  // Dog 自己的方法
    }
}

二、构造方法的继承规则

⚠️ 构造方法不能被继承,但子类构造时会先调用父类构造方法。

1. 默认调用父类无参构造

class Animal {
    Animal() {
        System.out.println("Animal 构造");
    }
}

class Dog extends Animal {
    Dog() {
        // 隐含 super();
        System.out.println("Dog 构造");
    }
}

2. 父类没有无参构造时必须显式调用

class Animal {
    Animal(String name) {
        this.name = name;
    }
    String name;
}

class Dog extends Animal {
    Dog() {
        super("小狗");
    }
}

三、方法重写(Override)

子类可以重写父类方法:

class Animal {
    void sound() {
        System.out.println("动物叫");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("喵喵叫");
    }
}

四、super 关键字

super 用于访问父类成员:

class Animal {
    void show() {
        System.out.println("Animal");
    }
}

class Dog extends Animal {
    void show() {
        super.show(); // 调用父类方法
        System.out.println("Dog");
    }
}

五、继承的限制

  1. Java 只支持单继承
class A {}
class B {}
// class C extends A, B {} ❌ 不允许
  1. final 类不能被继承
final class A {}
// class B extends A {} ❌
  1. private 成员不能被继承访问
class A {
    private int x;
}

六、抽象类继承(常见用法)

abstract class Animal {
    abstract void sound();
}

class Dog extends Animal {
    void sound() {
        System.out.println("汪汪");
    }
}

七、接口 vs 继承(补充)

  • 继承:extends(类与类)
  • 实现接口:implements(类与接口,可多个)
interface Runnable {
    void run();
}

class Dog extends Animal implements Runnable {
    public void run() {
        System.out.println("狗在跑");
    }
}

如果你愿意,可以告诉我:

  • 你是Java 初学者还是准备面试
  • 想了解 继承原理 / 多态 / 构造顺序 / 面试考点

我可以用更针对性的方式给你讲。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手