没有方法体的方法叫抽象方法
抽象方法所在的类叫做抽象类
多态(父类方法体没用,把父类方法体拿掉)->产生抽象方法->形成抽象类
抽象类不能创建实例,但可以继承普通类,实现接口,单继承多实现
普通类可以继承任意类,实现接口,单继承多实现,特别注意,继承抽象类,没有实现抽象类的方法,该类不能实例化
接口只能继承接口,接口时特殊的抽象类,接口中只有抽象方法,接口中的属性全部为常量
抽象类不能创建方法怎么办??
1.写一个子类继承这个抽象类
2.这个类必须重写抽象类所有方法,此时这个子类才能创建对象
3.如果子类没有完全重写抽象类的所有抽象方法,该子类也变成抽象类,这个子类也无法创建实例
4.只有一个孙子类来继承,并且重写父类和爷爷类所有的抽象方法,
注意父类实现爷爷类的抽象方法,那么子类就不再实现被父亲实现的爷爷类的方法,如果父类中自定义了父类的抽象方法,孙子不仅重写父类的抽象方法,而且也重写爷爷类中没被父亲重写的爷爷类的抽象方法
接口:抽象类(全部是抽象方法)完全抽象类,特殊抽象类,所有方法都是抽象
所以接口中的方法默认是public abstract 可以不写
三流歌手唱歌
二流歌手 制造旋律
一流歌手 带到故事中
三流公司卖产品
二流公司卖理念 服务
一流公司 设计标准
标准->公司实现->百家争鸣
抽象类不能是 static的,因为抽象类不能创建实例
接口不是一个类,因为接口没有构造器(即没有构造函数)不能实例化
接口内为常量,一次性赋值
接口内的属性为常量,只能赋值一次