在Java编程语言中,类继承是面向对象编程中的一个核心概念。它允许一个类继承另一个类的属性和方法,从而实现代码的复用和扩展。下面,我们将通过一张图来详细解析Java类继承的声明与用法。
类继承图解
1. 基本概念
- 父类(Superclass):被继承的类,也称为基类或超类。
- 子类(Subclass):继承父类的类,也称为派生类。
2. 类继承的声明
在Java中,使用关键字extends来声明一个子类继承自父类。以下是一个简单的例子:
// 定义父类
class Animal {
public void eat() {
System.out.println("Animal is eating.");
}
}
// 定义子类,继承自Animal
class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking.");
}
}
在上面的例子中,Dog类继承自Animal类,因此它具有Animal类的eat方法。
3. 方法重写
子类可以重写父类的方法,以实现特定的功能。使用关键字@Override来标识重写的方法。以下是一个例子:
class Dog extends Animal {
@Override
public void eat() {
System.out.println("Dog is eating bones.");
}
}
在这个例子中,Dog类重写了Animal类的eat方法,使其打印出不同的信息。
4. 访问权限
Java中,子类可以访问父类的公共(public)和受保护(protected)成员,但不能直接访问私有(private)成员。以下是一个例子:
class Animal {
protected int age;
private String name;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
}
class Dog extends Animal {
public Dog(String name, int age) {
super(name, age);
}
public void showAge() {
System.out.println("Dog's age: " + age);
}
}
在上面的例子中,Dog类可以访问Animal类的age成员,但不能直接访问name成员。
5. 多重继承
Java不支持多重继承,即一个子类不能继承自多个父类。但是,可以通过实现多个接口来模拟多重继承的效果。
interface Flyable {
void fly();
}
interface Swimmable {
void swim();
}
class Bird extends Animal implements Flyable {
public void fly() {
System.out.println("Bird is flying.");
}
}
class Duck extends Animal implements Swimmable {
public void swim() {
System.out.println("Duck is swimming.");
}
}
在上面的例子中,Bird类实现了Flyable接口,而Duck类实现了Swimmable接口,从而实现了多重继承的效果。
通过以上内容,相信你已经对Java类继承的声明与用法有了更深入的了解。希望这张图能帮助你更好地掌握这一重要概念。
