什么时候应该使用extends而不是实例化一个类?

时间:2014-07-04 22:32:52

标签: java oop

什么时候应该使用extends而不是正常使用课程?它实际上是否打算覆盖程序员无法访问的标准Java语言的方法?

3 个答案:

答案 0 :(得分:1)

extends用于Java中的继承目的。您可以使用此关键字继承您班级中的其他班级。

Java文档有一个很好的教程:http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

如果要将其他类中的数据实现到自己的类,则可以扩展该类。就像帖子的评论部分中的示例一样。

  

Cat延伸哺乳动物。哺乳动物延伸动物

您不需要为Cat重新创建整个方法和数据,因此您扩展了Mammal类,Mammal又具有属性数据为动物。这样,您就可以获得Cat中动物的所有属性和数据。

然后,如果你有这样的话

动物类

public Animal {
   private int type;
   private int height;
   private int width;
   // other private or public stuff
}

哺乳动物的动物遗传

public Mammal extends Animal {
   // here you'll have the type, height and width provided
   // to you as properties for the Mammal. You can use them
   // Mammal mammal = new Mammal();
   // int someType = mammal.type;
}

Cat

的哺乳动物遗传
public Cat extends Mammal {
   // since mammal has properties of Animal, 
   // cat would automatically get all the properties for Animal.
}

这样,您可以使用extend关键字。获取(在Java中继承)其他类的属性。

答案 1 :(得分:0)

当你想让你的类继承并使用超类的一些方法但是为它添加更多特定的操作时,你使用'extends'。例如,Person类可以包含扩展它的Student或Teacher类。

public class Student extends Person

Person类可以有getName()和getAge()等方法,而Student类可以继承这些方法,同时也有像getClasses()这样的方法。

答案 2 :(得分:0)

如果您的课程是具体课程,那么您可以直接实例化并使用它。然而, 如果您想要更具体的课程,那么您可以从更通用的课程中选择extendinherit

Honda Car课程为例。如果您有特定的模型,例如Honda Civic zxsd。现在,如果你把它表示为类,那么它是最具体的一个,你可以通过实例化它直接使用它。

虽然模型Honda Civic在表示为类时会更通用,而如果您想将特定的子模型civic zxsd表示为类,则需要inherit或{{1来自extend class。

希望这是有道理的。