`
xiaoheichuangtianya
  • 浏览: 27259 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

接口与抽象类

    博客分类:
  • java
阅读更多
抽象类

什么是抽象类

使用abstract关键字修饰的类就是抽象类,抽象类不能new对象,原因在于抽象类含有抽象方法,不能被调用。
没有方法体的方法为抽象方法,使用abstract关键字修饰。
有抽象方法的类必须声明为抽象类,抽象类不一定含有抽象方法。

为什么要定义抽象类

如果有多个类具有相同的方法声明,而方法的实现不一样,这时就可以抽象出父类,将方法在父类中声明
别人在学习我们的软件时,只需要学习父类就知道子类有什么方法
在设计软件时,要尽力抽象父类,继承关系以3~4层为宜


接口


什么是接口


接口是一种特殊的抽象类,接口中声明的所有方法都是抽象的

使用interface关键字修饰一个接口

接口的用法

我们可以定义一个类来实现接口,使用implements关键字
实现一个接口需要实现接口中所有的方法,抽象类除外
通常使用匿名内部类来实现一个接口
接口可以继承接口,使用extends关键字。 接口不能继承抽象类,因为抽象类中可能有不抽象的方法。

一个类可以实现多个接口,为了实现多态
接口中的方法和变量
接口中定义的方法默认是公有的抽象的,被public abstract修饰
接口中定义的变量默认为全局常量,使用public static final修饰
bstract class和interface的区别
抽象类中可以有不抽象的方法,接口中全是抽象的方法
抽象类用extends继承,接口用implements实现
抽象类中的变量和方法没有默认修饰符,接口中的变量默认为public static final的,接口中的方法默认为public abstract
一个类只能继承一个抽象类,一个类可以实现多个接口
什么时候用抽象类,什么时候用接口
如果能用接口,就不用抽象类,因为别人实现接口可以不占用继承的位置。
如果定义一个抽象的父类,其中所有方法都是抽象的,那么就定义为接口。
如果定义一个抽象的父类的时候,需要有不抽象的方法,那么只能定义为抽象类。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics