package review; //1.定义Animal类 class Animal{ String name = "牧羊犬"; int age = 2; void shout(){ System.out.println("动物叫声"); } } //2.定义Dog类传承Animal类 class Dog extends Animal{ String name = "小花"; //重写父类name成员变量 //重写父类的shout()方法 void shout(){ super.shout(); //通过super调用父类的方法 System.out.println("汪汪汪"); } void printName(){ System.out.println("类别:"+ super.name +"\n名字:"+ name ); //通过super调用父类的成员变量 System.out.println("年龄:"+super.age);//调用父类没有被重写的成员 } } public class r1 { public static void main(String[] args) { Dog dog = new Dog();//创建一个子类对象 dog.shout(); //dog对象调用的是子类重写的方法 dog.printName(); } } 动物叫声 汪汪汪 类别:牧羊犬 名字:小花 年龄:2
时间: 2023-05-20 10:01:43 浏览: 338
这是一个Java程序,定义了Animal类和Dog类,其中Dog类继承了Animal类。在main函数中创建了一个Dog对象,并调用了它的shout()和printName()方法。shout()方法被重写了,输出了"汪汪汪",而printName()方法则输出了类别、名字和年龄等信息。
相关问题
package zzl3104.dongwu; abstract class Animal { private String name; public Animal(String name) { this.name = name; } public abstract void shout(); public abstract void eat(Food food); public String getName() { return name; } public void setName(String name) { this.name = name; } } class Dog extends Animal { public Dog(String name) { super(name); } @Override public void shout() { System.out.println("汪汪汪~~~"); } @Override public void eat(Food food) { System.out.println(getName() +"正在啃着香喷喷的" + food.getName()); } } class Cat extends Animal{ public Cat(String name) { super(name); } public void shout() { System.out.println("喵喵喵~~~"); } public void eat(Food food) { System.out.println(getName() + "正在吃着香喷喷的" + food.getName()); } } interface Food { public abstract String getName(); } class Bone implements Food { @Override public String getName() { return "骨头"; } } class Fish extends Animal implements Food { public Fish(String name) { super(name); } @Override public void shout() { } @Override public void eat(Food food) { } } public class Feeder { private String name; public Feeder(String name) { this.name = name; } public void speak() { System.out.println("欢迎来到动物园!"); System.out.println("我是饲养员" + getName()); } public void feed(Animal a, Food food) { a.eat(food); } public String getName() { return name; } public void setName(String name) { this.name = name; } } class DongWuTest { public static void main(String[] args) { Feeder feeder = new Feeder("小华"); feeder.speak(); Dog dog = new Dog("小狗"); dog.shout(); Food food = new Bone(); feeder.feed(dog, food); Cat cat = new Cat("小猫"); cat.shout(); food = new Fish("黄花鱼"); feeder.feed(cat, food); } }
这是一段Java代码,定义了一个抽象类Animal和其子类Dog和Cat,还有一个实现了Food接口的类Bone和一个既是Animal又是Food的类Fish。
Feeder类是饲养员类,可以说话,并能够喂养动物。在DongWuTest类中,实例化了一个Feeder对象,并通过它喂养了一只狗和一只猫,分别喂了骨头和黄花鱼。
//动物发生模拟器. 请在下面的【】处添加代码。 public class AnimalShoutTest2 { public static void main(String[] args) { Cat cat = new Cat(); Dog dog = new Dog(); Goat goat = new Goat(); speak(cat); speak(dog); speak(goat); } //定义静态方法speak() 【】 } //定义抽象类Animal 【】class Animal{ 【】 } //基于Animal类,定义猫类Cat,并重写两个抽象方法 class Cat 【】{ 【】 【】 } //基于Animal类,定义狗类Dog,并重写两个抽象方法 class Dog 【】{ 【】 【】 } //基于Animal类,定义山羊类Goat,并重写两个抽象方法 class Goat 【】{ 【】 【】 }在【】处添加代码
public static void speak(Animal animal){
animal.shout();
}
abstract class Animal{
abstract void eat();
abstract void shout();
}
class Cat extends Animal{
@Override
void eat() {
System.out.println("Cat is eating...");
}
@Override
void shout() {
System.out.println("Meow~");
}
}
class Dog extends Animal{
@Override
void eat() {
System.out.println("Dog is eating...");
}
@Override
void shout() {
System.out.println("Woof!");
}
}
class Goat extends Animal{
@Override
void eat() {
System.out.println("Goat is eating...");
}
@Override
void shout() {
System.out.println("Bleat!");
}
}
阅读全文