在Java中,父类(也称为超类或基类)和子类(也称为派生类或扩展类)是面向对象编程的两个核心概念,它们通过继承机制关联在一起。继承允许我们创建一个新类(子类),该类继承了另一个类(父类)的属性和方法。这意味着子类可以重用父类的代码,并且可以添加或覆盖父类的功能。
下面是一个简单的Java代码示例,展示了如何定义父类和子类:
// 父类
public class Animal {
// 父类的属性
protected String name;
// 父类的构造方法
public Animal(String name) {
this.name = name;
}
// 父类的方法
public void eat() {
System.out.println(name + " is eating.");
}
}
// 子类
public class Dog extends Animal {
// 子类特有的属性
private String breed;
// 子类的构造方法
public Dog(String name, String breed) {
super(name); // 调用父类的构造方法
this.breed = breed;
}
// 子类特有的方法
public void bark() {
System.out.println("The dog barks.");
}
// 重写父类的方法
public void eat() {
System.out.println(name + " eats dog food.");
}
}
// 主类
public class Main {
public static void main(String[] args) {
Animal animal = new Animal("Generic Animal");
animal.eat(); // 输出 "Generic Animal is eating."
Dog dog = new Dog("Buddy", "Labrador");
dog.eat(); // 输出 "Buddy eats dog food."
dog.bark(); // 输出 "The dog barks."
}
}
在这个例子中,Animal
是父类,它有一个属性 name
和一个方法 eat()
。Dog
是 Animal
的子类,它添加了一个新的属性 breed
和一个新的方法 bark()
。此外,Dog
类还重写了 eat()
方法,提供了适合狗的行为。
通过继承,Dog
类自动获得了 Animal
类的所有非私有属性和方法。同时,Dog
类还可以添加或覆盖这些方法,以满足其特定需求。
值得注意的是,Java只支持单继承,这意味着一个类只能有一个直接的父类。但是,一个类可以实现多个接口,这是一种类似多重继承的机制。此外,Java还支持多层继承,即一个类可以继承自另一个已经继承自其他类的类。