在 Java 中,继承是一种重要的面向对象编程概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承,子类可以重用父类的代码,并且可以在不修改父类的情况下扩展或修改其行为。

以下是关于 Java 继承的一些基本概念和示例:

1. 定义父类和子类:
// 父类
class Animal {
    String name;

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

    void eat() {
        System.out.println(name + " is eating.");
    }
}

// 子类
class Dog extends Animal {
    Dog(String name) {
        super(name); // 调用父类的构造方法
    }

    void bark() {
        System.out.println(name + " is barking.");
    }
}

2. 调用父类的方法:

子类可以通过 super 关键字调用父类的方法。例如,在子类的方法中调用父类的同名方法。
class Dog extends Animal {
    // ...

    @Override
    void eat() {
        super.eat(); // 调用父类的 eat() 方法
        System.out.println(name + " is eating bones."); // 子类自己的逻辑
    }
}

3. 方法重写:

子类可以重写(Override)父类的方法,以提供特定于子类的实现。方法重写使用 @Override 注解。
class Dog extends Animal {
    // ...

    @Override
    void eat() {
        System.out.println(name + " is eating bones."); // 子类自己的逻辑
    }
}

4. 访问修饰符:

子类中的方法可以具有与父类中相同的、更宽松的,或更严格的访问修饰符。
// 父类
class Animal {
    protected void eat() {
        // ...
    }
}

// 子类
class Dog extends Animal {
    @Override
    public void eat() {
        // ...
    }
}

5. 多层继承:

一个类可以继承另一个类,而另一个类也可以成为另一个类的子类,形成多层继承。
class Animal {
    // ...
}

class Mammal extends Animal {
    // ...
}

class Dog extends Mammal {
    // ...
}

6. final 关键字:

使用 final 关键字可以防止类被继承,或者方法被重写。
final class FinalClass {
    // ...
}

class SubClass extends FinalClass { // 编译错误,无法继承 final 类
    // ...
}

class Animal {
    final void eat() {
        // ...
    }
}

class Dog extends Animal {
    // 编译错误,无法重写 final 方法
    // @Override
    // void eat() {
    //     // ...
    // }
}

这些是关于 Java 继承的一些基本概念和示例。继承是面向对象编程中的重要特性,它提供了代码重用和扩展的机制。


转载请注明出处:http://www.zyzy.cn/article/detail/424/Java