class 及其实例是什么意思? (java)
what do you mean by class and its instance ? (java)
我在查一些问题的时候发现了这个问题。它问一朵花和一朵玫瑰之间有什么关系。所以选择是继承,class 及其实例和接口及其实现。
现在我的问题是答案应该来自我所知道的继承,但答案实际上是 class 及其实例。那么我想知道的是 class 及其实例的实际含义是什么?据我所知,到目前为止,实例是指 class.
的对象
感谢您的宝贵时间。
A flower 只是给模板实际的 instance 是 rose
。即,花不存在物理上/虚拟,存在具有花特征的事物,它们被称为实例花。
没错,flower->rose 是继承的一个例子。花比较通用,玫瑰是一种特殊的花。
为了与花示例保持一致,玫瑰的概念将是 class,而单个实际的玫瑰将是实例。
A class 定义类型,它有什么行为,它可以有什么类型的值作为数据(或状态)。一个实例是一个对象,它是 class 的成员,具有特定的状态值。
A class 就像 template
从中创建 objects
。在您提到的示例中,花可能是 class,其中 rose
、dandelion
、lily
等可能是实例。例如,
public class Flower {
private String type;
..
public Flower(String type) {
this.type = type;
}
..
}
并将它的实例创建为
Flower rose = new Flower("rose");
Flower lily = new Flower("lily");
这是一个可行的解释。
我也能看出你的逻辑思维过程。本来可以
public class Flower {
..
}
和子class喜欢
public class Rose extends Flower {
..
}
和
public class Lily extends Flower {
..
}
但是,细微之处取决于实施。这取决于你如何看待问题(或者更确切地说,提问者如何看待问题)。也可以是 an interface and its implementation
。同样,取决于实施。
更新 1
您可以从这个问题陈述中看出 inheritance
的多个级别。这完全取决于您在应用程序中需要的详细程度。如果您只想将任何花朵视为一个实体,则可以将 Flower
用作 class 并将花朵的不同实例用作您的对象。
另一种情况是当您在花朵中看到一定程度的细节时。您想谈论不同类型的玫瑰或不同类型的百合花,比如它们的颜色、大小、位置、季节等。在这种情况下,仅 Flower
class 是不够的。 Rose
可能包含仅与玫瑰相关的详细信息 (properties
),而 Lily
可能包含一些仅与百合相关的信息。此时,只有 Flower
不再相关,因为它们不会为您提供任何重要信息。现在,您可以将 Flower
用作 abstract class
或 interface
,仅表示更高级别的 properies
或确保一定会找到某些 implementations
。然后为每个继承的花朵创建单独的 classes,例如 Rose
和 Lily
。
希望这能消除疑虑
实际上,the relationship between flower and the rose
不适合 class and its instance
。
class and its instance
如果有一朵花 class 就可以放在这里,而 class 只有一个实例是玫瑰。既然世界上有很多玫瑰,就不适合了。如果你声称一朵玫瑰是代表所有玫瑰属性的花的实例,而不是一朵玫瑰,我会争辩说有许多类型的玫瑰具有不同的属性(例如黄玫瑰和红玫瑰),所以一个实例不能代表所有的玫瑰。
我会说继承更合适,因为玫瑰是一种花。
4) 所有答案都正确。
继承 - 如果有其他特定于玫瑰的行为,而不是任何其他花的特征,您将使用继承扩展基础。另一种选择是使用组合(你至少应该喜欢它)。
Class 及其实例 - 如果玫瑰除了其名称外没有添加其他行为。您将拥有花的构造函数 class,制作一朵玫瑰就像将其名称传递给构造函数进行实例化一样简单。
接口及其实现 - 如果每种花都有不同的行为,但同时应该遵循确定的契约。它就像第一个,除了你不需要基础 class.
我在查一些问题的时候发现了这个问题。它问一朵花和一朵玫瑰之间有什么关系。所以选择是继承,class 及其实例和接口及其实现。
现在我的问题是答案应该来自我所知道的继承,但答案实际上是 class 及其实例。那么我想知道的是 class 及其实例的实际含义是什么?据我所知,到目前为止,实例是指 class.
的对象感谢您的宝贵时间。
A flower 只是给模板实际的 instance 是 rose
。即,花不存在物理上/虚拟,存在具有花特征的事物,它们被称为实例花。
没错,flower->rose 是继承的一个例子。花比较通用,玫瑰是一种特殊的花。
为了与花示例保持一致,玫瑰的概念将是 class,而单个实际的玫瑰将是实例。
A class 定义类型,它有什么行为,它可以有什么类型的值作为数据(或状态)。一个实例是一个对象,它是 class 的成员,具有特定的状态值。
A class 就像 template
从中创建 objects
。在您提到的示例中,花可能是 class,其中 rose
、dandelion
、lily
等可能是实例。例如,
public class Flower {
private String type;
..
public Flower(String type) {
this.type = type;
}
..
}
并将它的实例创建为
Flower rose = new Flower("rose");
Flower lily = new Flower("lily");
这是一个可行的解释。
我也能看出你的逻辑思维过程。本来可以
public class Flower {
..
}
和子class喜欢
public class Rose extends Flower {
..
}
和
public class Lily extends Flower {
..
}
但是,细微之处取决于实施。这取决于你如何看待问题(或者更确切地说,提问者如何看待问题)。也可以是 an interface and its implementation
。同样,取决于实施。
更新 1
您可以从这个问题陈述中看出 inheritance
的多个级别。这完全取决于您在应用程序中需要的详细程度。如果您只想将任何花朵视为一个实体,则可以将 Flower
用作 class 并将花朵的不同实例用作您的对象。
另一种情况是当您在花朵中看到一定程度的细节时。您想谈论不同类型的玫瑰或不同类型的百合花,比如它们的颜色、大小、位置、季节等。在这种情况下,仅 Flower
class 是不够的。 Rose
可能包含仅与玫瑰相关的详细信息 (properties
),而 Lily
可能包含一些仅与百合相关的信息。此时,只有 Flower
不再相关,因为它们不会为您提供任何重要信息。现在,您可以将 Flower
用作 abstract class
或 interface
,仅表示更高级别的 properies
或确保一定会找到某些 implementations
。然后为每个继承的花朵创建单独的 classes,例如 Rose
和 Lily
。
希望这能消除疑虑
实际上,the relationship between flower and the rose
不适合 class and its instance
。
class and its instance
如果有一朵花 class 就可以放在这里,而 class 只有一个实例是玫瑰。既然世界上有很多玫瑰,就不适合了。如果你声称一朵玫瑰是代表所有玫瑰属性的花的实例,而不是一朵玫瑰,我会争辩说有许多类型的玫瑰具有不同的属性(例如黄玫瑰和红玫瑰),所以一个实例不能代表所有的玫瑰。
我会说继承更合适,因为玫瑰是一种花。
4) 所有答案都正确。
继承 - 如果有其他特定于玫瑰的行为,而不是任何其他花的特征,您将使用继承扩展基础。另一种选择是使用组合(你至少应该喜欢它)。
Class 及其实例 - 如果玫瑰除了其名称外没有添加其他行为。您将拥有花的构造函数 class,制作一朵玫瑰就像将其名称传递给构造函数进行实例化一样简单。
接口及其实现 - 如果每种花都有不同的行为,但同时应该遵循确定的契约。它就像第一个,除了你不需要基础 class.