Oop 如何防止代码创建基类的实例?
假设我创建了从Oop 如何防止代码创建基类的实例?,oop,language-agnostic,inheritance,Oop,Language Agnostic,Inheritance,假设我创建了从Shape类继承的Circle和Triangle类。我的问题是如何防止代码创建Shape类的实例?为Shape提供一个受保护的构造函数。圆和三角形仍然可以从它们自己的构造函数调用它们。但其他人不能 Dante Jinag当然适合Java,我假设C++提供了一个受保护的构造函数。圆和三角形仍然可以从它们自己的构造函数调用它们。但其他人不能 Dante Jinag当然适合Java,我假设C++可以将Shape类设置为抽象的 public abstract class Shape {
Shape
类继承的Circle
和Triangle
类。我的问题是如何防止代码创建Shape
类的实例?为Shape提供一个受保护的构造函数。圆和三角形仍然可以从它们自己的构造函数调用它们。但其他人不能
Dante Jinag当然适合Java,我假设C++提供了一个受保护的构造函数。圆和三角形仍然可以从它们自己的构造函数调用它们。但其他人不能
Dante Jinag当然适合Java,我假设C++可以将Shape类设置为抽象的
public abstract class Shape {
//your code
}
您可以将Shape类设置为抽象的
public abstract class Shape {
//your code
}
你在用什么编程语言
通常,对象创建是为其成员分配内存和调用构造函数。如果您的Shape类没有成员,则不会分配内存。如果它有空构造函数,那么在这个步骤中也不会发生任何事情。您使用的是什么编程语言
通常,对象创建是为其成员分配内存和调用构造函数。如果您的Shape类没有成员,则不会分配内存。如果它有空构造函数,那么在这一步也不会发生任何事情。您将Shape类抽象化。这意味着它是一个未完成的类,用作提供附加功能的其他类的基础
例如,如果您有几个加载数据的类,那么您可以有一个抽象类DataLoader和一个具体类DatabaseLoader,XmlLoader…您可以使Shape类抽象。这意味着它是一个未完成的类,用作提供附加功能的其他类的基础
例如,如果有几个类加载数据,那么可以有一个抽象类DataLoader和一个具体类DatabaseLoader,XmlLoader…如何使类抽象取决于语言,但这是正确的一般答案。如何使类抽象取决于语言,但这是正确的一般答案。