本关任务:认识java继承,了解super关键字的用法及父类方法的重写 1.编写Dog类继承Animal类,并在构造方法中调用父类构造方法 2.重写父类shout方法,方法体为打印输出:String.format("%s发出汪汪叫", this.name) 3.添加public void superShout()方法,方法体为:调用父类shout方法
时间: 2023-11-07 08:08:14 浏览: 111
好的,下面是代码实现:
```java
public class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public void shout() {
System.out.println("动物发出叫声");
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void shout() {
System.out.println(String.format("%s发出汪汪叫", this.name));
}
public void superShout() {
super.shout();
}
}
```
在上述代码中,我们创建了一个`Animal`类,拥有一个`name`属性和一个`shout()`方法。然后,我们创建了一个`Dog`类,继承自`Animal`类,并在构造方法中使用`super`关键字来调用父类的构造方法。接着,我们在`Dog`类中重写了`shout()`方法,使其输出“****发出汪汪叫”的字符串。最后,我们添加了一个`superShout()`方法,该方法调用了父类的`shout()`方法。
相关问题
编程要求 根据提示,在右侧编辑器补充代码,认识java继承,了解super关键字的用法及父类方法的重写 1.编写Dog类继承Animal类,并在构造方法中调用父类构造方法 2.重写父类shout方法,方法体为打印输出:String.format("%s发出汪汪叫", this.name) 3.添加public void superShout()方法,方法体为:调用父类shout方法 测试说明 平台会对你编写的代码进行测试: 无输入 预期输出: 小花狗发出汪汪叫 小花狗发出叫声
```java
public class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public void shout() {
System.out.println(String.format("%s发出叫声", this.name));
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void shout() {
System.out.println(String.format("%s发出汪汪叫", this.name));
}
public void superShout() {
super.shout();
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("小花狗");
dog.shout();
dog.superShout();
}
}
```
在笔记本电脑课程中,您必须演示以下内容: 在构造函数AND方法中使用super关键字 重载方法 重写方法
在构造函数和方法中使用super关键字:
在Java中,super关键字用于调用父类的构造函数或方法。当子类构造函数或方法需要继承父类的某些属性或方法时,可以使用super关键字来调用父类相应的构造函数或方法。
示例代码:
```
public class Animal {
String name;
int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println(name + " is eating.");
}
}
public class Dog extends Animal {
public Dog(String name, int age) {
super(name, age);
}
@Override
public void eat() {
super.eat();
System.out.println(name + " is eating bones.");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog("Buddy", 3);
myDog.eat();
}
}
```
在上面的示例代码中,Dog类继承了Animal类,并通过super关键字调用了父类Animal的构造函数。在子类中重写了父类的eat()方法,并在方法中使用super关键字来调用父类的eat()方法,然后再添加一行输出语句。
重载方法:
在Java中,方法重载是指在同一个类中,有多个方法名相同但参数列表不同的方法。方法的参数列表包括参数的类型、数量和顺序,只要有一个不同,就可以认为是不同的方法。
示例代码:
```
public class Calculator {
public int add(int x, int y) {
return x + y;
}
public double add(double x, double y) {
return x + y;
}
public int add(int x, int y, int z) {
return x + y + z;
}
}
public class Main {
public static void main(String[] args) {
Calculator myCalculator = new Calculator();
System.out.println(myCalculator.add(1, 2));
System.out.println(myCalculator.add(2.5, 3.5));
System.out.println(myCalculator.add(1, 2, 3));
}
}
```
在上面的示例代码中,Calculator类中定义了三个add()方法,分别接受不同数量和类型的参数。在Main类中创建了一个Calculator对象,并分别调用了三个不同的add()方法。
重写方法:
在Java中,方法重写是指在子类中定义一个与父类中同名、同参数列表、同返回类型的方法,并且这个方法的访问修饰符不能比父类的更严格。
示例代码:
```
public class Animal {
public void move() {
System.out.println("Animal is moving.");
}
}
public class Dog extends Animal {
@Override
public void move() {
System.out.println("Dog is running.");
}
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Dog myDog = new Dog();
myAnimal.move();
myDog.move();
}
}
```
在上面的示例代码中,Animal类中定义了一个move()方法,用于显示动物在移动。Dog类继承了Animal类,并重写了move()方法,用于显示狗在奔跑。在Main类中创建了一个Animal对象和一个Dog对象,并分别调用了它们的move()方法,输出结果分别为“Animal is moving.”和“Dog is running.”。