编写一个具有继承关系的java程序,要求如下: a)必须有this和super的使用; b)必须在程序中体现出方法的重载和覆盖.
时间: 2024-02-11 18:04:46 浏览: 16
好的,以下是一个简单的具有继承关系的Java程序,满足要求:
```
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println("Animal is eating");
}
public void sleep() {
System.out.println("Animal is sleeping");
}
}
public class Dog extends Animal {
private String breed;
public Dog(String name, int age, String breed) {
super(name, age);
this.breed = breed;
}
public void eat(String food) {
System.out.println("Dog is eating " + food);
}
public void bark() {
System.out.println("Dog is barking");
}
@Override
public void sleep() {
System.out.println("Dog is sleeping");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal("Animal", 5);
animal.eat();
animal.sleep();
Dog dog = new Dog("Lucky", 3, "Labrador");
dog.eat("meat");
dog.sleep();
dog.bark();
}
}
```
解释一下代码:
- `Animal` 类是一个基类,拥有 `name` 和 `age` 两个属性,以及 `eat()` 和 `sleep()` 两个方法。
- `Dog` 类继承自 `Animal`,并添加了一个新属性 `breed`。同时,它重载了 `eat()` 方法,在原来基类的基础上增加了一个参数。此外,它还覆盖了 `sleep()` 方法,在原来基类的基础上改变了方法实现。
- `Main` 类是程序的入口,用于测试基类和子类的方法和属性。其中创建了一个 `Animal` 实例和一个 `Dog` 实例。