day8抽象类与接口
一、抽象类abstract
1.1抽象方法:没有方法体的方法。
1.2定义格式:
抽象方法定义格式:修饰符 abstract 返回值类型 方法名(参数列表); 抽象类定义格式:abstract class 类名{};
注意:
一个类包含抽象方法与普通方法,继承抽象类的子类必须重写父类所有的抽象方法,否则,子类必须声明为抽象类,最终,所有子类必须实现父类的抽象方法。
抽象类没有对象。抽象类中可以有构造方法,供子类创建对象时,初始化父类成员使用。
抽象方法没有方法体。
抽象类中不一定包含抽象方法,但是包含抽象方法的类一定是抽象类。
抽象类中的子类,必须重写父类所有的抽象方法;
二、接口
1.1接口中可以存在{
抽象方法:给子类实现使用
静态方法:供接口直接调用
默认方法default:供子类调用或者子类重写
私有方法private:供接口中的默认方法或者静态方法调用
}
1.2基本实现格式:
Class 类名 implement 接口名{
必须重写接口中的抽象方法;可选择重写接口中的默认方法}
1.3接口的多实现
class 类名 extends 父类名 implements 接口名1,接口名2.....{}
接口中多个抽象方法,实现类必须重写所有的抽象方法。多个接口中存在重名的抽象方法只需要重写一次。