JAVA学习——接口

一、抽象

抽象方法:仅有声明而没有方法体的方法 。如:abstract void f();

而包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。

PS 若从一个抽象类继承,并想创建该新类的对象,那么就必须为基类中的所有抽象方法提供方法定义。若不这样做,那么导出类也是抽象类,且编译器会强制用abstract关键字来限定这个类。

二、接口

创建一个接口,需要用interface关键字来替代class关键字。

接口中方法的访问权限都是public,可以显式地声明出来,不这么做默认也是public。不然方法在被继承的过程中,其访问权限就被降低了,这是java编译器所不允许的。

接口也可以包含域,但隐式地是staticfinal的,且自动是public的。

 

JAVA中使用接口的两个原因

①为了能够向上转型为多个基类型(以及由此而带来的灵活性)

②防止客户端程序员创建该类的对象,并确保这仅仅是建立一个接口(与使用抽象类的原因相同)

PS  如果要创建不带任何方法定义和成员变量的基类,那么就应该选择接口而不是抽象类。事实上,如果知道某事物应该成为一个基类,那么第一选择应该是使它成为一个接口。

 

三、Java中的多重继承

如果要从一个非接口的类继承,那么只能从一个类去继承。其余的基元素都必须是接口。另外,可以继承多个接口,并可以向上转型为每个接口,因为每个接口都是一个独立类型。

 

通过继承,可以很容易地在接口中添加新的方法声明,还可以通过继承在新接口中组合多个接口,以此获得新的接口。

四、嵌套接口

接口可以嵌套在类或者其他接口中,且嵌套在其他接口中的接口自动为public,而不能声明为private。

PS 实现某个接口时,并不需要实现嵌套在其内部的任何接口。而且,private接口不能在定义它的类之外被实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值