Java单继承的局限
与C++ Python之类语言不同,Java 不支持多继承。即,一个类不能同时直接继承多个父类。
而接口(interface)是抽象方法的集合,是声明性的。
所以当需要重用某些处理逻辑时,由静态方法组成的工具类(Utils)往往是解决方案之一,如 java.util.Collections。
(这方面,C# 的扩展方法有更漂亮的代码展现形式)
接口的 Default Method
从 Java 8 开始可以在接口中实现默认方法。以前很多工具类中的方法都适合被做成 default method。
谨慎使用此特性!!!
interface IA { default int func(int a, int b) { return a + b; } } class A implements IA{ void x() { System.out.println(func(1,2)); } }
标记接口(Marker Interface)
标记接口是不包含方法声明的接口。它很容易被误用,如 Cloneable 接口。
有时候 注解(Annotation)更合适,而且其表达能力更强。
函数式接口
函数式接口是只有一个方法的接口。如果确定要将一个接口设计为函数式接口,建议用注解 @FunctionalInterface 标记。
多接口同名方法
方法签名完全相同
一个类同时实现的多个接口中存在签名完全相同的方法时,这些同名方法会在该类中合并为同一个方法。
(C# 中不会合并)
interface A { int func(); } interface B { int func(); } class C implements A, B { @Override public int func() { ... } }
只有返回类型不同
一个类同时实现的多个接口中存在“同名同参,不同返回类型”的方法时,这些方法会在该类中冲突(无法通过编译)。
以下代码是不合法的:
interface A { int func(); } interface B { String func(); } class IllegalClass implements A, B { @Override public int func() { ... } }
相关推荐
接口和抽象类接口 抽象类异常 认 识 Exception 什么是 Throwable 常见的 Exception 与 Exception 有关的 Java 关键字 throws 和 throw try 、finally 、catch 什么是 Error 内部类 创建内部类集合 Iterable 接口顶层...
Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。...
javax.swing.plaf 提供一个接口和许多抽象类,Swing 用它们来提供自己的可插入外观功能。 javax.swing.plaf.basic 提供了根据基本外观构建的用户界面对象。 javax.swing.plaf.metal 提供根据 Java 外观(曾经代...
从java概述》java开发环境配置》java基本语法》java执行流程》面向对象》访问控制权限》接口和抽象类》异常》内部类》集合》泛形》反射》枚举》I/O》注解》关于 null 的几种处理方式
第10版根据Java SE 8全面更新,同时修正了第9版中的不足,系统全面讲解了Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。 本书共14章。第1章概述Java语言与其他程序设计语言不同的性能;...
java概述、开发环境配置、基本语法、执行控制流程、面向对象、方位控制权限、接口抽象类、异常、集合、泛型等
从intel和AMD两款CPU中提取出抽象类CPU (同理硬盘提取出抽象类Disk) 比如CPU [ Intel i5 / 6核 / 1599元 ] [ AMD r7 / 8核 / 2599元 ] CPU公共特征有 名字name / 核心数coreNum / 价格price 同样Disk公共特征有 名字...
1.java概述 2.java开发环境配置 3.java基本语法 4.java执行控制流程 5.面向对象 6.访问控制权限 7.接口和抽象类 8.异常 9.内部类 10.集合 11.泛形 12.反射 13.枚举 14.I/O 15.注解 16.Null值处理 17.思维导图
javax.swing.plaf 提供一个接口和许多抽象类,Swing 用它们来提供自己的可插入外观功能。 javax.swing.plaf.basic 提供了根据基本外观构建的用户界面对象。 javax.swing.plaf.metal 提供根据 Java 外观(曾经代...
抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和最佳实践 JavaIO流 多线程 深入理解内部类 javac和javap Java8...
类:一组类型相同事物高度抽象之后的集合概念 创建对象的模板 -》 class 对象:类的一个具体的实例 例子: 人和范冰冰之间的关系? 类和对象 HelloKitty和猫之间的关系? 对象和类 引用:对象的名字 *:一个...
Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。...
Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。...
Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。...
Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。...
1. 接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),抽象类可以 有非抽象的方法 2. 接口中的实例变量默认是 final 类型的,而抽象类中则不一定 3. 一个类可以实现多...
Java核心基础知识总结,含思维导图,包含Java基本语法,面向对象,接口和抽象类,异常,内部类,集合,泛型,反射,枚举,I/O,注解等Java基础核心知识,总结全面,内容丰富,欢迎下载。 如果对你有用,麻烦点个收藏...
javax.swing.plaf 提供一个接口和许多抽象类,Swing 用它们来提供自己的可插入外观功能。 javax.swing.plaf.basic 提供了根据基本外观构建的用户界面对象。 javax.swing.plaf.metal 提供根据 Java 外观(曾经代称为 ...
微服务应用是分布式开发的...第九季主要是给大家介绍一下:Java中封装的概念及步骤、Java封装类、Java抽象类的概念、继承抽象类、抽象方法、接口的概念、接口的声明与实现、接口的继承、多态的概念、多态的应用举例。