以下是关于 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