抽象类
*1:父类中定义的方法不需要具体的实现步骤子类都不按照父类的做
*2:父类中定义这个方法的目的是告诉子类一定要保证存在该方法
*对于类的要求:
*1:父类中不需要定义方法的实现步骤
*2:子类必须要重写
*抽象类:
*包含了抽象方法的的类称之为抽象类。
*被abstract修饰的类称之为抽象了
*抽象方法:
*只要方法的声明,没有方法体。通过abstract修饰的方法称之为抽象方法
*为什么需要抽象类?
*避免子类的随意设计提高了代码可读性提高了子类的健壮性
abstract class Person{
public abstract void eat();
}
class Chinese extends Person{
public void eat(){
}
}
*1:抽象类中只能包含抽象方法吗?
*既可以定义抽象方法也可以定义普通方法
*2:是否可以定义构造器
*抽象类可以存在构造器但是无法实例化
*抽象类中的构造器是给子类准备的
*抽象类就是用来被继承的抽象方法就是被重写的
*3:子类继承了抽象了之后一定要重写所有的抽象方法
接口
*接口:
*接口是一个规范是一套标准比抽象了还抽象
*
*接口如何定义:
*学习接口和学习类是一样的
*接口定义:
*修饰符interface接口名{}
*接口中的变量都是公开的静态的最终常量值默认情况下变量都是public static final修饰
*接口中可以定义静态方法(不建议1.8)
*接口中定义的对象方法都是抽象方法接口中的方法默认就是通过abstract修饰的
*接口中的默认方法从1.8之后才开始被使用允许在接口中定义default方法而且存在方法体
修饰符class类名extends父类implements接口
*接口深入:
*1、类和接口直接通过implements发生关系类实现接口
*2、类必须要实现接口中的所有抽象方法
*3、一个类可以实现多个接口类名implements接口1,接口2...
*4、一个类实现了接口之后要将当前接口以及接口的父接口中的所有抽象方法全部重写
*5、接口可以多继承
*6、接口无法实例化
*7、接口没有构造器
*8、接口中也可以使用多态