抽象类(abstract)的理解

2017-12-11  本文已影响0人  QinRenMin

解释:抽象,抽取事物的共性

abstract class Demo{
    void show() { }
}

3 抽象关键字不可以和哪些关键字共存?
    解答:
1).private :因为一个abstract方法需要被重写,所以不能修饰为private;
2).final:因为一个abstract方法需要被重写。被final修饰的方法是不能被重写的,所以不能同final共存;
3).static:因为一个abstract方法没有方法体。静态方法需要对方法体执行内容分配空间,所以不能同static共存;(abstract是没有实现的,不能产生对象,而是static是属于类的,类本身是已经存在的对象);
4).synchronized: 是同步的,然而同步需要具体的操作才能同步,但, abstract是只有声明没有实现的(即,使用synchronized关键字的是需要有具体的实现同步的操作的,但是使用abstract是只有声明而没有实现的,这样就产生了冲突);
5).native:他们本身的定义就是冲突的,native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法。

4 抽象类和一般类的异同点
相同点:抽象类和一般类都是用来描述事物的,在内部定义了成员。
不同点:
    1.一般类有足够的信息描述事物,抽象类有可能不足;
    2.一般类不能定义抽象方法,抽象类可以定义抽象方法和非抽象方法。
    3.一般类可以被实例化,抽象类不可以被实例化。

5.抽象类一定是父类吗?
    解答:是的,因为需要其子类覆盖其方法后才可以实现对子类实例化。

上一篇下一篇

猜你喜欢

热点阅读