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单继承的局限性来的 


你.LjWyH
30 声望3 粉丝

« 上一篇
目录
下一篇 »
视图