Java抽象类,抽象类(abstract)和接口(implement)的区别
*一、一个抽象类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义
可以
这么做目的只有一个,就是不让其他类创建本类对象,交给子类完成
* 二、abstract不能和那些关键字共存
private:
abstract是表明希望被覆盖的,但是private,子类看不到。
static:
如果是static就需要创建对象
但abstract不需要创建对象(没有意义)
final:
final表示不能被子类覆盖
abstract表名希望被覆盖
* 三、抽象类和接口的区别是什么?
1). 接口是抽象类的变体,接口中所有的方法都是抽象的。抽象类是声明方法的存在而不去实现它的类。
2). 一个类可以实现多个接口。一个类只能继承一个抽象类
3). 接口只能定义方法,不能实现。抽象类可以实现部分方法
4). 接口中基本数据类型为static 。抽类象不是的。
5). 接口中不能含有静态代码块以及静态方法。抽象类可以含有静态方法和静态代码块
6). 接口中不能定义构造器,抽象类可以可以定义构造器
7). 抽象类里不一定要有抽象方法
* 四、相同点?
1). 都不能够实例化
1). 可以将接口和抽象类作为引用类型
1).一个类如果继承了某个接口,或者实现了某个抽象类,就要对其中的抽象方法全部进行具体的实现,否则该类仍需要被定义为抽象类