Fen*_*iks 5 java inheritance abstract
我有抽象类 Animal 和继承类 Fish 和 Dog。我需要创建各种鱼和狗的物体,并给它们命名和品种,并制定它们移动方式的方法。最后,我需要创建一个它们的数组,并随机打印 4 份来显示它们的名字和品种。
主要类别:
public class JavaApplication38 {
public static void main(String[] args) {
Animal[] arr = new Animal[20];
arr[0] = new Fish("Riby", "Sea Fish");
arr[1] = new Dog("Any", "Great Dane");
arr[2] = new Fish("Ribytsa", "River fish");
arr[3] = new Dog("Jackie", "Pug");
arr[4] = new Fish("Bobi", "Mix");
arr[5] = new Dog("Ruby", "Labrador");
}
}
Run Code Online (Sandbox Code Playgroud)
动物类
public abstract class Animal {
public Animal(String name, String breed){
}
public Animal(){
}
public abstract void moving();
}
Run Code Online (Sandbox Code Playgroud)
狗类
Public class Dog extends Animal{
private String breed;
private String name;
public Dog(){
}
public Pas(String name, String breed){
this.name = name;
this.breed =breed;
}
@Override
public void moving() {
System.out.print("Walk\n");
}
Run Code Online (Sandbox Code Playgroud)
}
鱼类类
public class Fish extends Animal {
private String breed;
private String name;
public Fish(){
}
public Fish(String name, String breed){
this.name = name;
this.breed= breed;
}
@Override
public void moving(){
System.out.print("Swims\n");
}
Run Code Online (Sandbox Code Playgroud)
}
问题是,我必须在循环中编写什么才能通过数组打印名称和品种?
问题是您在 的每个子类中分别定义了name和。您需要在 中创建和实例变量。这样,Java 就知道每个 Animal 都有一个和。breedAnimalnamebreedAnimalnamebreed
public abstract class Animal {
private String name;
private String breed;
public Animal(String name, String breed) {
this.name = name;
this.breed = breed;
}
public getName() { return name; }
public getBreed() { return breed; }
public abstract void moving();
}
public class Dog extends Animal {
public Dog(String name, String breed) {
super(name, breed);
}
@Override
public void moving(){
System.out.print("Walks\n");
}
}
public class Fish extends Animal {
public Fish(String name, String breed) {
super(name, breed);
}
@Override
public void moving(){
System.out.print("Swims\n");
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以打印任何 的name和,无论它是 a还是。breedAnimalDogFish
Animal[] arr = new Animal[6];
arr[0] = new Fish("Riby", "Sea Fish");
arr[1] = new Dog("Any", "Great Dane");
arr[2] = new Fish("Ribytsa", "River fish");
arr[3] = new Dog("Jackie", "Pug");
arr[4] = new Fish("Bobi", "Mix");
arr[5] = new Dog("Ruby", "Labrador");
for (Animal a : arr) {
System.out.println(a.getName() + " " + a.getBreed());
a.moving();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3122 次 |
| 最近记录: |