javaSE_8系列博客——Java语言的特性(五)--接口和继承(4)--使用接口作为类型
来源:互联网 发布:世熙传媒 知乎 编辑:程序博客网 时间:2024/06/05 06:26
定义新接口时,您将定义新的引用数据类型。您可以在任何可以使用任何其他数据类型名称的地方使用接口名称。如果定义类型为一个接口的引用变量,则分配给它的任何对象必须是实现该接口的类的实例。 作为一个例子,这里是一个找到一对对象中最大对象的方法,对于从实现的类中实例化Relatable的任何对象。
public Object findLargest(Object object1, Object object2) { Relatable obj1 = (Relatable)object1; Relatable obj2 = (Relatable)object2; if ((obj1).isLargerThan(obj2) > 0) return object1; else return object2;}
通过将object1转换为Relatable类型,可以调用isLargerThan方法
如果您在各种类中实现Relatable,则可以将任何类中实例化的对象与findLargest()方法进行比较 - 只要两个对象都是同一个类。同样,他们都可以与以下方法进行比较:
public Object findSmallest(Object object1, Object object2) { Relatable obj1 = (Relatable)object1; Relatable obj2 = (Relatable)object2; if ((obj1).isLargerThan(obj2) < 0) return object1; else return object2;}public boolean isEqual(Object object1, Object object2) { Relatable obj1 = (Relatable)object1; Relatable obj2 = (Relatable)object2; if ( (obj1).isLargerThan(obj2) == 0) return true; else return false;}
这些方法适用于任何“可关联”对象,无论它们的类继承的是什么。当它们实现Relatable 时,它们可以是自己的类(或超类)类型和可相关类型。这给了他们多重继承的一些优点,他们可以从超类和接口中获得行为。
阅读全文
0 0
- javaSE_8系列博客——Java语言的特性(五)--接口和继承(4)--使用接口作为类型
- javaSE_8系列博客——Java语言的特性(五)--接口和继承(2)--定义接口
- javaSE_8系列博客——Java语言的特性(五)--接口和继承(3)--实现接口
- javaSE_8系列博客——Java语言的特性(五)--接口和继承(1)--宏观把控
- JavaSE_8系列博客——Java语言的特性(五)--接口和继承(6)--默认方法的使用场景
- JavaSE_8系列博客——Java语言的特性(五)--接口和继承(5)--深入理解,并优化接口
- javaSE_8系列博客——Java语言的特性(四)--注解--(4)-- 类型注解和可插拔类型系统
- javaSE_8系列博客——Java语言的特性(三)--类和对象(21)--枚举类型
- JavaSE_8系列博客——Java语言的特性(六)--泛型(3)--泛型和类型通配符
- javaSE_8系列博客——Java语言的特性(三)--类和对象(10)--对象的使用
- javaSE_8系列博客——Java语言的特性(三)--类和对象(12)--使用this关键字
- javaSE_8系列博客——Java语言的特性(三)--类和对象(21)--何时使用Lambda 表达式?
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(4)-- 变量和数组
- javaSE_8系列博客——Java语言的特性(三)--类和对象(4)--声明成员变量
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识
- javaSE_8系列博客——Java语言的特性(四)--注解--(5)-- 如何使用自定义的注解?
- JavaSE_8系列博客——Java语言的特性(六)--泛型(5)--泛型的使用
- javaSE_8系列博客——Java语言的特性(四)--注解--(1)--基础知识
- Spark MLlib系列(一):入门介绍
- java-方法的重写以及方法重写和方法重载的区别
- Spark MLlib系列(二):基于协同过滤的电影推荐系统
- 为什么switch case语句需要加入break
- 差分运算
- javaSE_8系列博客——Java语言的特性(五)--接口和继承(4)--使用接口作为类型
- Python的对象和类(6)
- 初识内容管理(一)
- eclipse上配置java运行时内存大小
- STORM入门之(基本Shell命令)
- 【代码笔记】iOS-给密码进行加密
- [Java]java类加载及new对象的过程
- 6月26日
- Java进阶(三十) 判断字符串编码类型