`
blues1021
  • 浏览: 135486 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

JAVA中的接口与抽象类的区别记忆

阅读更多

 

接口与抽象类:抓住接口抽象类的控制、非控制修饰->方法的 控制、非控制修饰和书写形式(仅声明or混合使用)->实现类中方法的书写(仅把abstract去掉)。

1.1接口
    1.1  接口用public [默认][abstract] interface interfacename 定义,其中abstract是可选的,当不声明时也会编译时默认添加。

1.1.1其中的公共常量:都是自动添加为抽象的、最终的、静态的,abstract final static没有变量

1.1.2而方法隐含为public,默认,abstract, 的,不能为final,static的;

方法只能是声明方法void specialProcessEvent().

1.2抽象类:
    1.2  抽象类用 public [默认] abstract class classname或 <类的访问控制符>  class classname 但是内部方法有abstract类型的 来定义,

1.2.1 数据成员类型可以是任意 定义的。

1.2.2方法,其中只要有一个成员为抽象的则该类为抽象类(也就是方法可以混合形式使用 ),而方法用public protected 默认 abstract , 不能为final,static,private。

总结:方法都可为 public ,默认,protected, abstract 不能为final private static,因为要用后面的实现或继承(非 private,private)、属于对象(非static)。 只有interface 中常量要求为abstract final static.

后面实现类中方法去掉abstract,其它相同即可。

  2:继承和引用区别:

    2.1  接口为多继承的,不能实现接口类,只能由类来实现,所以接口是上散下聚合于类的.
    2.2  抽象类只可以单继承,实现多接口,只要子类不为抽象类时,都实现了抽象的成员,才能声明对象。

3. 多态:
(1)接口和抽象类通过子类声明的引用都是只能调用自己的方法实现循环处理,而子类特有的只能通过子类对象调用;故实现统一处理

(2) 另一更重要的多态是子类方法的重载方法,使得方法名相同但是对象不同,实现功能也不同

使用抽象类是侧重于代码的复用;而使用接口的动机是侧重实现多态性(统一接口),且提供灵活的多继承。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics