抽象类的使用

接口是完全抽象的成员集合,他的成员都无法在接口定义时实现,我们可以将它看作是为操作定义合同。接口的实现完全留给开发者去做。
Java中:
类只能是从一个基类继承,所以如果要使用抽象类为一组类提供多态性,这些类必须都是从那个类继承的
接口不但可以用一个类或结构实现多个接口,一个接口还可以有多个实现

如果预计要创建组件的多个版本,我们应该创建抽象类。这是因为,抽象类提供简单易行的方法来控制组件版本。通过更新基类,所有继承类都随更改自动更新。这是好处,当然也是问题.另一方面,接口一旦创建就不能更改。如果需要接口的新版本,必须创建一个全新的接口。所以,如果创建的功能将在大范围的全异对象间使用,则使用接口。”------:“能不能这样说,抽象类主要用于关系密切的对象,而接口最适合为不相关的类提供通用功能。”

接口本身就是定义规范的,只有空方法名,没有实现,所以接口继承接口以后也没必要重写! 

如果一个类继承自抽象类,而没有实现这个抽象类中所有的抽象方法,那么这个类还是抽象类,还不能new出来实例!


抽象类

声明抽象类需要使用abstract关键字。
不能实例化抽象类的实例对象。
可以创建抽象类的引用。
可以使用抽象类引用指向其子类的实例。
抽象类可以包含非抽象方法、抽象方法及实例属性。
抽象类可以没有抽象方法。
不能使用final关键字修饰抽象类。
具有一个或多个抽象方法的类,必须声明为抽象类。

抽象方法

声明抽象方法需要使用abstract关键字。
抽象方法不能有方法体。
抽象方法使用一个分号代替方法体。
抽象方法是用来让子类覆盖的。
抽象方法不能使用final关键字修饰,因为final方法表示不能被子类覆盖。
抽象方法必须是实例方法,所以不能使用static关键字修饰。
抽象方法不能使用private关键字修饰,因为private方法是隐式的final方法。

继承抽象类

扩展抽象类时,有两种选择。可以不覆盖部分或全部抽象方法,但这时该类也必须是抽象类。(因为该类还存在抽象方法,所以它学是“半成品”);或者定义所有的抽象方法,这样该类就可以不再声明为抽象类了。


因为接口都是抽象方法。所以在实现它的时候要全部覆写这些方法。
如果有个类,只想实现其中的一部分方法::
在接口与这个类中间可以加一个抽象方法:
抽象类去覆写接口中的所有方法,而那个类去继承这个抽象类,根据需要覆写抽象类中的方法。


接口跟类差不多,关键是interface,里面只能有函数定义和常量,不能有变量和实现的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值