Java8简明学习之接口默认方法
2024-08-28 09:54:40
接口中有默认方法实现
Java8允许我们使用default关键字,为接口声明添加非抽象的方法实现。
public interface DefaultInterFace { int plus(int x, int y); default int mul(int x, int y) {
return x*y;
} default int mul2(int x, int y) {
return x*x*y*y;
}
}
public class DefaultInterFaceImpl implements DefaultInterFace { @Override
public int plus(int x, int y) {
return x + y;
} // @Override
// public int mul(int x, int y) {
// return x*x*y*y;
// }
}
public class DefaultInterFaceTest {
@Test
public void testDefaultInterFace() {
DefaultInterFace defaultInterFace = new DefaultInterFaceImpl();
System.out.println(defaultInterFace.plus(5, 6));
System.out.println(defaultInterFace.mul(5, 6));
System.out.println(defaultInterFace.mul2(5, 6));
}
}
Java8中接口和抽象类的比较
相同点:
都能定义方法和属性(之前接口不能定义方法)。
抽象类和接口都可以不含有抽象方法。
抽象类和接口都不能创建对象。
继承和实现接口或抽象类的子类必须实现接口或抽象类的所有的方法。
不同点:
属性上,抽象类可以用各种各样的修饰符修饰。而接口的属性是默认的public static final
抽象类中可以含有静态代码块和静态方法,而接口不能含有静态方法和静态代码块。
抽象类可以含有构造方法,接口不能含有构造方法。
抽象类表示的是IS-A的关系,接口则表示LIKE-A的关系。
接口只能继承接口。而抽象类可以继承普通的类,也能继承接口和抽象类。
最新文章
- HTML学习开篇
- Jenkins进阶系列之——14配置Jenkins用户和权限
- UVa 136 Ugly Numbers【优先队列】
- SSMS 2008R2没有智能感知方法解决
- JPA OpenJPA 简单例子
- ANDROID_MARS学习笔记_S01原始版_001_Intent
- 打造强大的BaseModel(2):让Model实现自动映射,将字典转化成Model
- Django 1.10中文文档—第一个Django应用Part1
- 用django搭建一个简易blog系统(翻译)(四)
- Spring事务管理—aop:pointcut expression解析
- [最短路][部分转]P1027 Car的旅行路线
- [Swift]LeetCode739. 每日温度 | Daily Temperatures
- meta标签补充属性(viewport)
- vue-cli 3.0
- Acrobat Pro DC 2019 mac中文版(pdf编辑器)
- BarCodeUtile
- Can't locate find.pl in @INC (@INC contains: /etc/perl xxxx) at perlpath.pl line 7.
- django的model操作整理
- QGIS里的编程模型
- verilog语法实例学习(6)