第1关:练习-Java继承和多态之方法重载educoder
时间: 2025-07-06 13:50:13 浏览: 11
### 关于Java继承、多态以及方法重载的练习题
在探讨Java中的继承、多态和方法重载时,这些概念共同构成了面向对象编程的核心要素。通过具体的实例可以更好地理解如何应用这些特性。
#### 继承与多态的概念说明
继承允许创建的新类(子类)获取现有类(父类)的功能并扩展或修改功能;而多态则让不同类型的对象可以通过相同的接口来调用不同的实现方式[^1]。
#### 方法重载的理解
方法重载指的是在一个类中有两个以上的方法具有相同的名字但参数列表不同(数量差异或是类型区别)。编译器会根据传递给函数的实际参数自动选择合适版本执行。
#### 示例代码展示
下面是一个简单的案例用于解释上述知识点:
```java
// 定义一个动物基类
class Animal {
public void sound() { // 基础声音行为定义
System.out.println("Some Sound");
}
}
// 创建狗类作为Animal的具体化形式之一
class Dog extends Animal {
@Override
public void sound(){ // 覆盖sound方法以提供特定的行为
System.out.println("Woof woof!");
}
// 下面是几个重载的形式
public void bark(int times){
for (int i=0;i<times;i++){
System.out.print("Woof ");
}
System.out.println();
}
public void bark(String tone, int times){
String result="";
while(times-->0){
result+=tone+" ";
}
System.out.println(result.trim());
}
}
```
这段程序展示了`Dog`类是如何从`Animal`类那里继承属性的同时也实现了自己的特有逻辑——即覆盖了原有的`sounds()`方法,并提供了多个版本的`bark()`方法来进行重载操作。
#### 测试代码片段
为了验证上面所提到的内容,在主函数里编写如下测试语句:
```java
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // 使用向上转型
((Dog)myDog).bark(3); // 输出 "Woof Woof Woof"
((Dog)myDog).bark("High",2);// 输出 "High High"
myDog.sound(); // 由于多态性,实际调用了Dog类里的sound()
// 输出 "Woof woof!"
}
}
```
此部分代码不仅体现了继承关系下的多态现象,还展现了当我们将具体类型转换回其原始声明类型之后仍然能够访问到那些被重写的成员函数的能力。
阅读全文
相关推荐















