您的位置:首页 > 其它

抽象类

2016-05-14 16:36 211 查看
1、两者之间不存在继承关系,可以向上抽取

class DemoA{

void show(){

syso("~~~");

}}

class DemoB{

void show(){

syso("~~~");

}}

2、抽象类的特点
1)方法只有声明,没有实现时,该方法就是抽象方法,需要被abstract修饰。

        抽象函数所在的类也必须标识成抽象的。

2)抽象类不可以被实例化,即不能new 创建,因为调用抽象方法没意义,里边没有实现

3)抽象类必须有其子类覆盖所有的抽象方法后,该子类才可以实例化,否则这个子类还是抽象类。

细节:

1、抽象类中有构造函数?

有,用于给子类对象初始化。

2、抽象类可以不定义抽象方法吗?

可以,但是很少见,目的就是不让该对象创建对象。awt的适配器对象就是这种类。

通常这个类中的方法有方法体,但却没有内容

class Demo{

void show1();//没有方法体

void show2(){}//有方法体,没有内容

}

3、抽象关键字不可以和哪些关键字共存?

private 不行 private abstract show(),肯定不行,抽象方法要被覆盖,一旦私有,子类都不知道有这个方法

static 不行 如果成员变静态,还需要对象吗,不需要,直接类名.直接调用就好,但这样抽象方法运行没有意义

final 不行 因为被final修饰了,不能被继承了

4、抽象类和一般类的异同点

相同:都是用来描述事务的,都定义了成员

不同:1,一般类有足够的信息描述事务,抽象类描述信息有可能不足

2,一般类中不能定义抽象方法,抽象类中可以定义

3,一般类可以被实例化,抽象类不可以

5、抽象类一定是个父类吗

是的。因为需要子类覆盖其方法后,才能对子类实例化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: