抽象方法与抽象类
抽象方法,将共性的行为(方法)抽取到父类之后发现无法准确定义具体行为,所以把改方法定义为抽象方法,交由子类来重写实现
抽象类
因为抽象方法只能存活于抽象类中,所以抽象方法存在的类也要加abstract修饰
抽象方法和抽象类定义格式
抽象类的注意事项
1,抽象类不能实例化,就是不能new 一个抽象类的对象
如果一个抽象类能实例化出对象来,就能调用内部没有方法的抽象方法了
2,抽象类存在构造方法
3,抽象类中可以存在普通方法
4,抽象类的子类
1),要么重写抽象类中的抽象方法
2),要么是抽象类
abstract关键字的冲突
final 被abstract关键字修饰的方法强制要求子类重写, 被final修饰的方法子类不能重写
private 被abstract关键字修饰的方法强制要求子类重写, 被private修饰的方法子类不能重写
static 被static修饰的方法可以类名调用, 类名调用抽象方法没有意义
接口
如果发现一个类,所有的组成都是抽象方法
---没有成员变量
---没有普通方法
这种类一般设计成java中的接口
JAVA中的接口体现的思想是对规则的声明
接口的定义格式
interface 接口名 {}
接口没有构造方法,也不允许实例化,也就是不能new 对象
接口之间是实现关系,通过implements关键字完成实现
class 类名 implements 接口名 {}
实现类(接口的子类):
有两种选择,
1),重写所有抽象方法
2)将实现类变成抽象类
接口中的成员特点
1)成员变量
接口中的成员变量只能是常量,默认修饰符为 public static final
2)构造方法,
接口中没有构造方法
3)成员方法
只能是抽象方法,默认修饰符 public static