抽象类
类到对象是实例化,对象到类是抽象。
**抽象类:**类与类之间有共同特征,将这些具有共同特征的类提取出来进一步抽象形成抽象类。
格式
修饰符列表 abstract class 类名{ }
eg:public abstract class A{}
特点
1.抽象类无法实例化,无法创建对象。
public class Test
{
public static void main(String[] args) {
AbstractClass c = new AbstractClass(); //报错 java: Test.AbstractClass是抽象的; 无法实例化
}
}
abstract class AbstractClass{
}
2.子类继承于抽象类,子类可以实例化对象
public class Test
{
public static void main(String[] args) {
AbstractSubClass sub=new AbstractSubClass();
}
}
abstract class AbstractClass{
}
class AbstractSubClass extends AbstractClass{
}
3.抽象类属于引用数据类型。
4.final和abstract关键字不能联合使用
- final是不允许继承,abstract是需要继承
5.抽象类的子类可以是抽象类
6.抽象类有构造方法,供子类使用。
7.抽象类关联到一个概念是抽象方法,即没有实现的方法。
特点
- 没有方法体,以分号结尾。 //public abstract void doSome(); 前面修饰符列表有abstract关键字。
8.抽象类不一定有抽象方法,但是抽象方法一定在抽象类里面。
9.一个抽象类里面有抽象方法,子类必须实现这个方法,不然编译器会报错。
abstract class AbstractClass{
public abstract void doSome();
}
class AbstractSubClass extends AbstractClass{
/*如果没有以下代码,编译器报错: Test.AbstractSubClass不是抽象的, 并且未覆盖Test.AbstractClass中的抽象方法doSome()
public void doSome()
{
}
*/
}