Java的抽象类与接口

开发工具与关键技术: MyEclipse 10、Java语法
作者:邓婵
撰写时间:2019年 5月 23日

Java抽象类(abstract)定义:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类为抽象类。
抽象方法:只包含一个方法名,没有方法体,使用abstract修饰。
例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行结果如图下所示:
在这里插入图片描述
总结:
1.抽象类必须使用abstract修饰符,抽象方法也必须使用abstract,抽象方法不能有方法体。
2.抽象类不能被实例化,无法用new来调用抽象类的构造器创建抽象类的实例。
3.抽象类可以包含成员变量、方法(普通和抽象方法都行)、构造器、初始化块、内部类。
4.抽象类的构造器不能用于创建实例,主要是用于被其子类调用。
5.抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
6.abstract 和 static不能同时修饰一个方法。

接口(Interface)无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
接口可以继承多个父接口,但接口只能继承接口,不能继承类。
接口完全是抽象的,接口不能有构造器,接口没有main方法,因此我们不能运行它。
接口的特性:
1)接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
2)接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。
3)Java接口里的成员变量只能是public static final共同修饰的,并且必须赋初值,也可以不写public static final。
例子:
在这里插入图片描述
说明:在接口中声明变量的时候必须赋初始值,还有编译时会自动为接口里定义的成员变量增加public static final修饰符,所以可不写。在接口里面只能写抽象方法,不能写普通方法,编译时也会自动为接口里定义的方法添加public abstract修饰符,所以可不用写修饰符。
在这里插入图片描述
说明:体现了要实现一个接口就要实现接口里面的所有抽象方法。
在这里插入图片描述
说明:因为我们没法new接口,只能实例化接口的实现类,然后再调用接口里面定义好的接口。

接口可以多继承接口,但不能继承类。
例子:

public interface InterfaceThree extends InterFaceOne,InterfaceTwo{
}

接口存在的意义 :接口其实就是定义了一种规范,我接口并不提供功能只是提供了方法、方法名称、方法的形参、返回的类型。接口就相当于自定规范,通用的,并不做实际的东西出来,不同的类只要实现我这种接口,那我就可以用同一种规范,同一种方法去调用不同的产品。

抽象类与接口的比较:
相同点:抽象类可接口都不能进行实例化
不同点:抽象类可以有main方法,接口不能
抽象类有默认的方法实现,接口没有
抽象类可以有构造器,接口不可以
抽象类可以用public、protected和default修饰,接口只能默认使用public
抽象类可以继承一个类或实现多个接口,接口只能继承一个或多个其他接口

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值