我有一块不同类型的板。这些类型的区别仅在于它们能够走的范围和方向。除此之外,它们相同。共有4种类型。如果我创建了类Piece
的4个子类,或者只是将类型另存为String,这是更好的做法吗?
例如:
public class TypeX extends Piece {...}
public class TypeY extends Piece {...}
或
public class Piece{
String type;
public Piece(String type) {
this.type = type;
}
}
答案 0 :(得分:3)
您应该利用继承并创建4个不同的子类型。 在父类中实现通用代码,属性和行为。
在孩子中定义任何不同的内容,例如运动behavior
。
您想要的是让class piece
拥有move
的行为。 但是,您希望move
做一些不同的事情,具体取决于乐曲的类型。 polymorphism
进来了。通过这种OOP练习,您可以在每个子类中实现不同的行为。
我将摘录w3schools的摘录,以充分说明这一点。 在示例中,要特别注意动物类及其子类。您可以用这些片段做完全相同的事情。
Java多态性 多态性的意思是“许多形式”,当 我们有许多通过继承相互关联的类。
就像我们在上一章中指定的那样;继承让我们继承 其他类的属性和方法。多态使用那些 执行不同任务的方法。这使我们可以执行一个 采取不同的行动。
例如,考虑一个叫做Animal的超类,它具有一个方法 称为animalSound()。动物的子类可以是猪,猫,狗, 鸟类-它们也有自己的动物声音实现 (猪的ink叫声和猫的叫声等):
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
来源:w3schools