抽象类
1)、什么是抽象类?
类和类之间有共同特征,将这些共同特征提取出来,形成的就是抽象类。
类本身是不存在的,所以抽象类无法创建对象。【无法实例化】
2)、抽象类属于什么类型?
抽象类也属于引用数据类型。
3)、抽象类怎么定义?
**语法:
[修饰符列表] abstract class 类名{
类体;
}
4)、抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
5)、final和abstract不能联合使用,这两个关键字是对立的。
6)、抽象类的子类可以是抽象类。
7)、抽象类虽然无法实例化对象,但是抽象类有构造方法,这个构造方法供子类使用。
8)、抽象类关联到一个概念:抽象方法。
**什么是抽象方法?
表示没有实现的方法。没有方法体的方法。
例:
public abstract void doSome();
**抽象方法的特点:
(1).没有方法体,括号后面没有大括号,直接跟分号。
(2).前面修饰符列表中有abstract关键字。
9)、抽象类中不一定有抽象方法,但抽象方法只能出现在抽象类中。
10)、子类需要将从父类中继承过来的抽象方法进行覆盖/重写/实现。
如果子类是抽象类的话,那么从父类继承过来的抽象方法也可以不覆盖/重写/实现。
11)、面试题(判断):Java语言中凡是没有方法体的方法都是抽象方法。
【错误】
解释:Object类中有很多方法都没有方法体,都是以“;”结尾的,但他们都不是抽象方法,例如:
public native int hashCode();
这个方法底层调用了C++写的动态链接库程序。
前面修饰符列表中没有:abstract,有一个native关键字,表示调用JVM本地程序。