20220809-Java的接口和实现interface&implements

  • 今天抽空学习了接口相关的基础知识,学习了一些新的名词:接口、实现,还学到2个关键字interface、implements
  • 现实世界有大量的接口,几乎所有的电脑有USB接口,耳机接口,网线接口等等,Java中的接口更像是一种协议和规定,实现了接口的类可以扩展使用接口的功能。
1.接口的语法
interface 接口名{
//属性
//方法
}
class 类名 implements 接口{
//自己属性
//自己方法
//必须实现接口中的抽象方法
}

2.接口随版本的变化
  • jdk7之前,接口里的所有方法都没有方法体
  • jdk8之后接口类可以有静态方法,默认方法default,即接口中可以有方法的具体实现

3.接口注意事项
  1. 接口不可以被实例化(可以有接口类型的变量,但是不能new接口对象);
  2. 接口中的所有方法是public方法,接口中的抽象方法可以不用abstract修饰;
  3. 普通类实现接口,必须将接口中的所有方法实现;
  4. 抽象类实现接口,可以不用实现接口的方法;
  5. 一个类可以实现多个接口;
  6. 接口中的属性必须使用public static final修饰符;
  7. 接口中的属性访问型式:接口名.属性名;
  8. 接口不能继承其他的类,但是可以继承多个别的接口;
  9. 接口的修饰符只能是public和默认,与类的修饰符一样,使用public修饰时需要单独存放于与接口同名的文件中

4.实现接口 VS 继承类
  1. 接口是对于Java单继承机制的补充
  2. 子类继承了父类,自动拥有父类的功能
  3. 如果子类需要扩展功能,可以通过实现接口的方式来扩展
  4. 继承的价值在于:解决代码的复用性和可维护性
  5. 接口的价值在于:设计好各种规范,让其它类去实现这些方法
  6. 接口比继承更加灵活,继承需要满足is-a,接口只需满足like-a
  7. 接口在一定程度上可以实现代码解耦(接口规范性+动态绑定)

5.接口的多态特性:
  1. 多态参数:接口类型变量可以指向实现了该接口的类的对象
  2. 多态数组
  3. 接口存在多态传递

6.接口代码示例
public class TestAbstract {
public static void main(String[] args) {
LittleMonkey a = new LittleMonkey("A");
a.climbing();
a.flying();
a.swimming();
LittleMonkey f = new Little("C");
}
}
class Monkey {
private String name;
public Monkey(String name) {
this.name = name;
}
public void climbing() {
System.out.println("猴子会爬树");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
interface Fishable {
public void swimming();
}
interface Birdable {
public void flying();
}
class LittleMonkey extends Monkey implements Fishable, Birdable{
public LittleMonkey(String name) {
super(name);
}
@Override
public void swimming() {
System.out.println(this.getName() + "努力学习游泳~");
}
@Override
public void flying() {
System.out.println(this.getName() + "努力学习飞翔~");
}
}
posted @   淡忘的江南  阅读(209)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示