Appearance
在这个例子中,我将定义两个类:Animal
和 Dog
。Animal
是父类,包含一些所有动物共有的方法;而 Dog
则是子类,它会继承父类的方法并添加自己的特定行为。
首先,我会在 Animal.java
文件中编写一个基本的动物类:
java
// Animal.java
public class Animal {
// 定义属性:name(名称)和 age(年龄)
public String name;
public int age;
// 无参构造方法
public Animal() {}
// 带参数的构造方法
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
// 定义一个打招呼的方法,输出动物的名字和年龄
public void greeting() {
System.out.println("我是" + this.name + ",今年" + this.age + "岁了。");
}
}
接下来,在 Dog.java
文件中定义狗类:
java
// Dog.java
public class Dog extends Animal { // 使用extends关键字继承Animal类
// 定义一个叫的方法,只属于狗的行为
public void bark() {
System.out.println("汪汪~");
}
@Override // 使用@Override注解来重写父类的打招呼方法
public void greeting() {
super.greeting(); // 调用父类中的greeting方法
System.out.println("我是忠诚的狗狗," + this.name);
}
}
最后,在 Main.java
文件中编写主程序:
java
// Main.java
public class Main {
public static void main(String[] args) {
// 创建一个Dog对象并初始化属性
Dog dog = new Dog("小黑", 3);
// 调用狗的打招呼方法和叫的方法
dog.greeting();
dog.bark();
// 输出结果示例:
// 我是小黑,今年3岁了。
// 汪汪~
}
}
运行代码
将上述三个文件保存到同一个包中(例如:
com.example继承练习
)。打开命令行工具或IDE运行
Main.java
:bashjavac Main.java Animal.java Dog.java && java com.example.Main
输出结果:
我是小黑,今年3岁了。 汪汪~我是忠诚的狗狗,小黑。
代码解释
继承关系:
Dog
类通过extends Animal
继承自Animal
类。方法重写:在
Dog
中使用@Override
注解并重新定义了父类的greeting()
方法,实现了多态性。调用父类方法:使用关键字
super.greeting()
调用了父类中的打招呼方法,并在其后添加了自己的输出内容。
总结
通过这个简单的例子,你可以看到:
- 子类可以继承父类的所有属性和方法。
- 子类可以通过重写(Override)来覆盖父类的方法以实现不同的行为。
- 使用
super
关键字可以在子类中调用父类的构造方法或被重写的成员方法。
这种面向对象编程特性使得代码更加模块化、可维护,并且能够提高开发效率。