java接口的性质,Java接口

你之所以能优于别人,正是因为你坚持了别人所不能坚持的。

本文相关代码在我的Github,欢迎Star~

前言

学习了对象与类之后,我们对面向对象的思想有了进一步的了解,我们知道在设计类的时候,对公共的内容抽象出来,编写一个抽象类,采用继承的方式来让程序更加的健壮。除了抽象类,还有一种方式也能达到这个目的,那就是本文要说的 接口

接口

什么是接口呢?

在 Java 中,接口是一种抽象类型,是抽象方法的集合。接口使用 interface 来声明。

public interface Demo {

public abstract show();

}

接口的特性

接口中包含全局常量,抽象方法

全局常量 - 接口会默认的为全局常量设置为 public static final

抽象方法 - 接口会默认的为抽象方法设置为 public abstract

接口中的方法为抽象方法,因此接口不能被实例化

类可以实现接口并实例化对象,接口可以声明接口变量来引用该类的对象( Java 多态)

类与类之间是继承关系,类与接口之间是实现关系,使用关键字 implements

类只能继承一个类,但是一个类可以实现多个接口(解决了 Java 单继承)

可以使用 instanceof 来检查一个类是否实现某个特定的接口

Java 是单继承(一个类只能继承一个类)接口是多继承(一个接口可以继承多个接口)

/**

* 定义一个接口

*/

public interface Demo {

default void show() {

//操作

}

}

interface King {

// 全局变量 ,默认提供 public static final

double PI = 3.14;

// 抽象方法 ,默认提供 public abstract

void show();

}

//接口多继承,声明超接口的方法

interface Dom extends Demo, King{

void show();

}

//类实现接口

class Student implements King{

// 类实现接口,就需要实现接口中的抽象方法

@Override

public void show() {

System.out.println(PI);

}

}

class Test {

public static void main(String[] args) {

// 接口对象 来引用 类对象 - 体现了面向对象的多态

King king = new Student();

king.show();

// 判断类是否实现了接口

Student student = new Student();

System.out.println(student instanceof King);

}

}

接口和抽象类的区别

抽象类只能被继承,而且只能单继承

接口需要被实现,而且可以多实现

抽象类中可以定义非抽象方法,子类可以直接继承使用

接口中都有抽象方法,需要子类实现

抽象类使用的是 is a 关系

接口使用的是 like a 关系

抽象类的成员修饰符可以自定义

接口中的成员修饰符是固定的,全部是public的

抽象类有构造方法

接口没有构造方法

抽象类中可以有静态代码块和静态方法

接口中不能含有静态代码块和静态方法

接口的默认方法

可以为接口提供一个默认实现,必须使用 default 修饰符来标记

public interface Demo {

default void show() {

//操作

}

}

接口的设计特点

接口是对外提供的规则

接口是功能上的扩展

接口的出现降低了耦合性

接口的应用

/**

* 声明接口USB

*/

interface USB {

void used();

}

/**

* 声明类Mouse,实现USB接口,并实现used方法

*/

class Mouse implements USB {

@Override

public void used() {

System.out.println("鼠标点击");

}

}

/**

* 声明类KeyBoard,实现USB接口,并实现used方法

*/

class KeyBoard implements USB {

@Override

public void used() {

System.out.println("键盘按键");

}

}

public class Demo1 {

public static void main(String[] args) {

//声明接口对象,引用鼠标对象

USB usb = new Mouse();

usb.used();

//声明接口对象,引用键盘对象

usb = new KeyBoard();

usb.used();

}

}

总结

接口是对事物的抽象,抽取事物的共有特征,可以降低代码的冗余。我们可以根据实际的需要来设计相应的接口~

相关代码记录于GitHub中,欢迎各位伙伴 Star !

有任何疑问 微信搜一搜 [程序猿大博] 与我联系~

如果觉得对您有所帮助,请 点赞 ,收藏 ,如有不足,请评论或私信指正!谢谢~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值