Java中的抽象类和接口

抽象类:

Java中的抽象类在class之前加 abstract关键字代表这个类是一个抽象类,抽象类和普通类没有太大的区别,只是抽象类中多了抽象方法,抽象方法也是使用abstract关键字声明,抽象方法只有方法声明,没有方法体;

你也可以在抽象类中定义成员变量,跟普通类的定义方式没有本质上的区别,所以我们把抽象类理解成普通类的"超类"。抽象类一般作为父类来派生子类,子类如果是一个普通类,那子类就要重写抽象类的抽象方法。但是如果子类也是抽象类则不用重写。虽然抽象类和普通类的区别只是在抽象类中多了抽象方法,但是抽象类不能被实例化。而且抽象类及其抽象方法不能用final关键字修饰,因为抽象类本身的意义是在于被继承,然后子类重写抽象方法来达到多态的效果,你使用final关键字修饰了抽象类,该类就不能被继承,更别说重写抽象方法。所以说抽象类和抽象方法不用final修饰。

接口:

接口可以理解成一个升级版的抽象类,既然是一个升级版的抽象类,那自然也不能被实例化,也不能使用final关键字修饰其本身和方法。接口里面只有全局常量和抽象方法。我们在什么情况下使用接口呢。在你定义兔子这个类,接口中有jump这个抽象方法。这时候我们就可以用implement这个关键字使用接口,重写jump方法。接口代表了某种能力和行为或者表示一种规范和标准。如果你的定义的类中有接口里面的行为,那就可以使用接口来实现多态。而且一个类可以使用多个接口,不像继承一样,只能继承一个类,所以接口更加的灵活。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值