发布网友 发布时间:2022-04-20 01:39
共5个回答
热心网友 时间:2023-10-04 09:24
1、抽象类不能实例化。
2、抽象类可以包含抽象方法和抽象访问器。
3、不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。
4、从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。
扩展资料
抽象类与其他类的比较
一、与具体类比较
1、抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
2、允许(但不要求)抽象类包含抽象成员。
3、抽象类不能被密封。
二、与接口比较
抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。
参考资料来源:百度百科-抽象类
热心网友 时间:2023-10-04 09:25
专业解答:抽象类不能实例化。抽象类中可以没有,可以有一各或多个抽象方法,甚至可以全部方· 法都是抽象方法。
热心网友 时间:2023-10-04 09:25
1、抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
2、允许(但不要求)抽象类包含抽象成员。
3、抽象类不能被密封。
热心网友 时间:2023-10-04 09:26
抽象类就是在类名前加了修饰符abstract。如果这个类有方法是抽象方法也就是此方法使用abstract修饰的,那么此类就是抽象类。抽象方法没有方法主体,就是没有大括号,直接在小括号后面加分号。如:
public abstract void sayHello();
就是抽象方法。
抽象类就是为了让子类继承的,它表示从一些具体类中抽象出来的类型。
热心网友 时间:2023-10-04 09:26
抽象类就是在类名和方法前必须加了修饰符abstract,这个方法是不具体的没有实现的,因为方法他是抽象的你不知道他要做什么,那么这个方法在这有什么用呢,这就需要一个满足is a关系的类来继承这个抽象类了,继承了有什么用呢,那么他就继承父类的非私有的成员方法和成员变量了,当然方法你继承的是抽象的,如果你对现在的对明确了,你就可以在这个子类重写父类方法,多个子类就可以有多个行为,如动物类是人类有一个方法
动物叫声的类,动物有很多,你不知道他是具体那种动物叫声,那么他就是不具体的,你就可以这样
Public abstract vid work()
他有一个子类 狗类
Public void work(0
{
System.out.prinln("汪汪汪");//重写父类方法
}
Public abstract vid work()
他有一个子类 猫类
Public void work(
{
System.out.prinln("喵喵喵");//重写父类方法
}
是不是就形成了多态了?