抽象方法和抽象类与接口

抽象方法和抽象类
由abstract修饰的方法为抽象方法,抽象方法只有方法的定义,没有方法体实现,用一个分号结尾;
一个类中如果包含抽象方法,该类应该用abstract关键字声明为抽象类;
如果一个类继承了抽象类,必须重写其抽象方法(除非该类也声明为抽象类)。
在这里插入图片描述
抽象类不可以实例化
抽象类不可以实例化,例如,如果Shape是抽象类的话,下面的代码是错误的:
Shape s1 = new Shape();
即使一个类中没有抽象方法,也可以将其定义为抽象类,同样,该类不可以实例化。
abstract和final关键字不可以同时用于修饰一个类,因为final关键字使得类不可继承,而abstract修饰的类如果不可以继承将没有任何意义。
继承抽象类
一个类继承抽象类后,必须重写其抽象方法,不同的子类可以有不同的实现。
在这里插入图片描述
3.3 抽象类的意义
为其子类提供一个公共的类型;
封装子类中的重复内容(成员变量和方法);
定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。
3.4 接口
接口可以看成是特殊的抽象类。即只包含有抽象方法的抽象类;
在这里插入图片描述
与继承不同,一个类可以实现多个接口,实现的接口直接用逗号分隔。当然,该类需要实现这些接口中定义的所有方法;
一个类可以通过implements关键字“实现”接口。一个类实现了某个接口后必须实现该接口中定义的所有方法。
接口可以作为一种类型声明变量,一个接口类型的变量可以引用实现了该接口的类的对象;通过该变量可以调用该接口中定义的方法(具体的实现类提供了方法的实现)。在这里插入图片描述

在这里插入图片描述
接口的继承
接口间可以存在继承关系,一个接口可以通过extends关键字继承另外一个接口。子接口继承了父接口中定义的所有方法。
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值