1,类和类间的关系:是继承关系extends(继承是强耦合)
只能是单继承
class A extends B
其中A是子类,B是父类
A类拥有B类的所有功能(除了私有的和构造方法)
当A类继承了B类的所有功能,想改,会发生方法重写现象
重写要求:子类的方法声明和父类一样,而且, 要有足够的重写权限
重写的目的:是在不改变原有功能的前提下,修改业务,
改的是子类,对于父类原来的功能没有任何影响
当在子类中,想用用父类的功能时,通过super来调用
2,接口和接口间的关系:是继承关系extends
可以单继承,也可以多继承
interface A extends B --单继承
其中,A是子接口,B是父接口
A接口可以 使用 B接口的所有功能
interface C extends D , E --多继承
其中,C是子接口 , D和E是父接口
C接口可以 使用 D和E接口的所有功能
3,类和接口间的关系: 是实现关系implements
不仅可以单实现,还可以多实现,还可以继承的同时再多实现
class A implements B
其中,A是实现类,B是接口
A可以使用接口里的所有功能,但是,需要重写抽象方法,否则就是一个抽象类
class C implements D,E
其中,C是实现类,D和E是接口
要求C需要,同时重写D和E里的所有 抽象方法,否则还是一个抽象的实现类
class X extends Y implements M,N,O
其中,X是子类/实现类 ,Y是父类,M N O是接口
要求X,同时重写 所有 抽象方法,否则还是一个抽象的实现类
4,抽象类和接口的区别
--相同点
都可以出现抽象方法
都不能被实例化
都需要子类重写抽象方法
接口 和 抽象类 体现了继承结构里的 抽象层
问题: 抽象层的表现可以是接口?也可以是抽象类?--到底设计成谁?
答案: 看需不需要提供方法体,
如果都是抽象方法,那就直接设计成接口,还可以多继承多实现更灵活
如果有普通方法,那就还是设计成抽象类吧,坏处是只能单继承
--不同点
抽象类里有构造方法,用来给子类创建对象.接口里没有构造方法.
抽象类里有变量,但是接口里,只有常量,会为简写的常量自动拼接
public static final
抽象类里有普通方法,但是接口里,都是抽象方法(除了jdk1.8)
接口里的抽象可以简写,会为简写的抽象方法自动拼接public abstract
抽象类只能是和子类之间发生单根继承关系
接口和实现类之间是实现 关系,而且可以 多实现
接口和接口 之间是继承 关系,而且可以 多继承
接口 是为了突破java单继承的局限性来的
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。