admin管理员组文章数量:1794759
接口
*接口:
有时,我们需要从多个不相关的类中设计出一个子类型,而java继承是单继承的特点,无 法满足我们的需求,
所以,我们可以使用"接口"来达到多继承的目的.
接口实际上就是一种规范制度
--特点:
(1)接口使用interface关键字,而不是class
但是我们可以理解成接口是特殊的抽象类
(2)接口里只能有抽象方法和常量
(3)接口不能实例化,没有意义
(4)###接口不能提供构造器
--接口中的常量:
默认修饰词为public static final
--接口中的方法:
默认修饰词为public abstract
--接口的实现:
(1)子类需要实现接口中的所有抽象方法
(2)使用implements关键字进行实现
(3)如果子类没有实现所有抽象方法,那么子类需要用abstract修饰
(4)子类可以实现多个接口,接口间使用逗号(,)分开
--接口间的继承
(1)接口与接口之间可以使用继承
子接口继承了父接口的抽象方法
(2)支持多继承
*多态:面向对象的特征之一
--向上造型:
(1)父类型的变量指向不同类型的子类型.
调用的功能有不同的实现
Animal a = new Dog();
a.noise();//叫
a = new Cat();
a.noise();//叫
(2)不同的父类型变量指向同一个对象有不同的功能
ZhengYangDoor a = new ZhengYangDoor();
a.theftproof();//防盗
a.openDoor();//开门
InterA ia = a;
ia.theftproof();
--向下造型:
将父类型(接口)的变量赋值给子类型或者其他父类型(接口)的变量
只有向上造型无法满足需求时,才会向下造型
Animal a = new Dog();
Dog dog = (Dog)a;
dog.吃骨头();
Cat cat = (Cat)a;//编译通过,语法正确,运行期间,造型错误
cat.扑捉老鼠();
运行期间有可能会发生(类造型异常):java.lang.ClassCastException
为了避免出现错误:我们需要使用关键字instanceof来判断
对象是不是要转换成的类型
if(a instanceOf Cat){
Cat cat = (Cat)a;
}
本文标签: 接口
版权声明:本文标题:接口 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1704468905a485784.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论