java 抽象类
一、概述:
- 在面向对象的概念中,所有的对象都是通过类来描绘的;但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
- 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法、初始化块和构造方法和普通类一样。
- 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法。
所以,抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。
二、抽象类的特点
-
1、抽象类和抽象方法必须用abstract关键字修饰
-
2、格式:
abstract class 类名 {};//抽象类
public abstract void eat(); //抽象方法
abstract class Animal {
//抽象方法
public abstract void eat(); //抽象方法,是指没有方法体的方法
//public abstract void eat(){} //空方法体,这个会报错。抽象方法不能有主体
}
class AbstractDemo{
public static void main(String[] args) {
}
}
- 3、抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象类。例如:
abstract class Animal {
}
class AbstractDemo{
public static void main(String[] args) {
}
}
抽象类中没有抽象方法不会报错;又如
class Animal {
//抽象方法
public abstract v