1.为什么需要抽象类abstract?
在Java语言中, abstract class 和 interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。
抽象类是对类的抽象,是一种模板设计;接口是行为的抽象,是一种行为的规范。
抽象类是用来捕捉子类的通用特性的;接口是抽象方法的集合。
抽象类主要用于当做基础类使用,即基类(抽象类 用于被继承的子类使用的)。如果想拥有一些方法,并且这些方法有默认实现,那么使用抽象类。
接口主要用于模块与模块之间的调用。主要用接口来实现多继承,因为Java不支持类的多继承,只能用接口。
通常 某类 没有实例对象,但我们有时需要某类的引用 指向 它的子类实例(单单只需某类的引用(用作于基类或父类),并不需要其实例化)。
抽象类abstract
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。
含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。
格式:
抽象类:修饰符 abstract class 类名{}
抽象方法:修饰符 abstract 返回值类型 方法名(参数列表){方法体;}
特点:
1)抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类
2)抽象类不可以实例化(不能用new关键字创建抽象类实例)
3)抽象类的子类,可以是抽象类,也可以是具体类。如果子类是具体类,需要重写抽象类里面所有抽象方法
组成:
1)成员变量:可以是变量,可以是常量
2)