abstract class和public abstract class两者区别
时间: 2023-09-05 19:11:38 浏览: 71
在Java中,abstract class和public abstract class都表示抽象类,但它们之间有一些差别。
首先,abstract class是一个抽象类,它不能被实例化,只能被继承。而public abstract class也是一个抽象类,但它可以被其他包中的类继承。
其次,abstract class可以有构造函数,而public abstract class不能有构造函数。这是因为public abstract class的主要目的是为了被继承和扩展,而不是被实例化。
最后,如果一个类是抽象的,那么它的所有方法都可以是抽象的,也可以是非抽象的。但是如果一个类是public abstract的,那么它至少有一个抽象方法,因为抽象类的主要目的是为了强制其子类实现某些方法,以便实现多态性。
综上所述,abstract class和public abstract class都表示抽象类,但它们之间有细微的差别。
相关问题
public abstract class Person {
这是一个抽象类 Person 的定义,它表示一个人的概念。由于 Person 是抽象的,因此它不能被实例化,只能被继承。子类必须实现 Person 中定义的抽象方法。
抽象类通常用于定义一些通用的行为或属性,但是具体的实现需要在子类中完成。例如,在这个 Person 类中,可以定义一些通用的属性和行为,如姓名、年龄、性别、工作等,但是具体的人员类型,如学生、教师、医生等,需要在子类中实现。
public abstract class Student 这里为啥用abstract
在C#中,使用abstract关键字声明抽象类或抽象成员。抽象类是不能实例化的,只能被继承。抽象成员是没有实现的方法或属性,必须在派生类中被实现。在这个例子中,声明一个抽象类Student,很可能是因为这个Student类是一个基类,希望派生类来实现它的一些方法或属性。因为抽象类是不能被实例化的,所以我们必须创建一个派生类来继承它,并实现它的所有抽象方法,才能使用它。如果我们希望这个基类中的某些方法或属性必须被派生类实现,那么我们就可以将这些方法或属性声明为抽象成员。这样,派生类必须重写这些方法或属性才能进行实例化。