创建子类或将类型设置为字符串?

时间:2020-02-04 16:08:52

标签: java class

我有一块不同类型的板。这些类型的区别仅在于它们能够走的范围和方向。除此之外,它们相同。共有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;
    }
}

1 个答案:

答案 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