Java接口(Interface)
创始人
2024-01-29 18:13:25
0

文章目录

        • 接口语法
        • 注意事项和细节
        • 实现接口VS.继承类
        • 接口的多态特性
        • 小练习

usb插槽就是现实中的接口。
你可以把手机,相机,u盘都插在usb插槽上,而不用担心那个插槽是专门插哪个的,原因是做usb插槽的厂家和做各种设备的厂家都遵守了统一的规定包括尺寸,排线等等。

image-20221116114328607

image-20221116114431964

首先创建Usb接口 UsbInterface.java

package src.interface_;public interface UsbInterface {public void start();public void stop();
}

Camera.java

package src.interface_;public class Camera implements UsbInterface {@Overridepublic void start() {System.out.println("相机开始工作.......");}@Overridepublic void stop() {System.out.println("相机停止工作");}
}

Phone.java

public class Phone implements UsbInterface {@Overridepublic void start() {System.out.println("手机开始工作....");}@Overridepublic void stop() {System.out.println("手机停止工作.....");}
}

最后我们模拟电脑工作时候的流程, 插入设备开始 - 然后结束

package src.interface_;public class Computer {public void work(UsbInterface usbInterface) {usbInterface.start();usbInterface.stop();}
}

我们实例化各个类试试 TestInterface.java

package src.interface_;public class TestInterface {public static void main(String[] args) {Camera camera = new Camera();Phone phone = new Phone();// 创建计算机Computer computer = new Computer();// 模拟把相机插入电脑computer.work(camera);// 模拟把手机插入电脑computer.work(phone);}
}

接口语法

interface 接口名{//属性//方法
}
class 类名 implements 接口{自己属性;自己方法;必须实现的接口的抽象方法;
}

在jdk7.0前, 接口里的所有方法都没有方法体;

jdk8.0后接口类可以有静态方法, 默认方法, 也就是说接口中可以有方法的具体实现.

对初学者讲理解接口的概念不算太难,难的是不知道什么时候使用接口,下面我例举几个应用场景:

1.说现在要制造战斗机,武装直升机.专家只需把飞机需要的功能/规格定下来即可,然后让别的人具体实现就可。

2.说现在有一个项目经理,管理三个程序员,功能开发一个软件为了控制和管理软件项目经理可以定义一些接口,然后由程序员具体实现。


实际要求: 3个程序员, 编写三个类,分别完成对Mysql,Oracle,DB2数据库的连接connect, close…

注意事项和细节

  1. 接口不能被实例化
  2. 接口中所有的方法是public方法, 接口中抽象方法可以不用abstract修饰
  3. 一个普通类实现(implements)接口,就必须将该接口的所有方法都实现
  4. 抽象类实现接口, 可以不用实现接口的所有方法
  5. 一个类可以同时实现多个接口
  6. 接口中的属性只能是final的, 而且是public static final修饰符
  7. 接口中属性的访问形式:接口名.属性名
  8. 接口不能继承其他的类, 但是可以继承多个别的接口
  9. 接口的修饰符只能是public和默认, 这点和类的修饰符是一样的

实现接口VS.继承类

继承的价值主要在于:解决代码的复用性和可维护性。
接口的价值主要在于:设计,设计好各种规范(方法),让其它类去实现这些方法。即更加的灵活…

接口比继承更加灵活, 继承是满足is - a的关系,而接口只需满足like - a的关系

接口在一定程度上实现代码解耦[即:接口规范性+动态绑定]

接口的多态特性

在前面的Usb接口案例,UsbInterface usb ,既可以接收手机对象,又可以接收相机对象,就体现了接口多态(接口引用可以指向实现了接口的类的对象)

演示一个案例:给Usb数组中,存放Phone和相机对象,Phone类还有一个特有的方法call() ,请遍历Usb数组,如果是Phone对象,除了调用Usb接口定义的方法外,还需要调用Phone特有方法call.

接口存在多态传递现象.

小练习

interface A {int x = 0;// 等价于 public static final int x=0
}class B {int x = 1;// 普通属性
}public class C extends B implements A {public void pX() {// System.out.println(x); //错误,x不明确// 可以明确的指定x// 访问接口的x就是用A.x// 访问父类的x就是用super.xSystem.out.println(A.x + " " + super.x);}public static void main(String[] args) {new C().pX();}
}

image-20221116164910210

相关内容

热门资讯

2022年教师资格证2000元...   站在三尺讲台,就需要把自己所学的知识无私的奉献出去,还需要有极高的道德品格。这也就是作为人民教师...
三级警监一个月工资多少,警察工...   警察一直是作为保卫人民安全的存在,哪里有犯罪哪里有危险,只要报警人民警察就会马上出动。警察就是维...
民生易贷是正规贷款吗?民生易贷...   民生助粒贷是属于民生易贷旗下运营的一款针对个人消费开放的信贷产品这款产品自上市以来就十分稳定,审...
深圳社保最低档每月多少钱,20... 如今大家都在积极了解社保的有关内容,政策的不断变化让大家不得不时刻关注。那么深圳社保最低档每月是多少...
燃油车为什么纷纷涨价?燃油汽车...   今年来,我们会发现油价上涨的速度是非常快的,这也导致很多人都快开不起车了,油价今天一直非常受关注...
儿童社保卡怎么激活?小孩社保卡... 社保卡不仅是大人可以用,儿童社保卡激活后也可以使用。因为小孩子生病什么的有时候甚至比大人更频繁,社保...
美团外卖员一个月能挣多少钱 是... 外卖为人们的生活提供了许多便利。这离不开外卖小哥的辛苦奔波,我们经常能看到他们在城市里奔跑的身影。那...
自费交社保一个月多少钱?个人自...   社保是国家给的福利,我们需要做的就是每个月向社保缴纳一定比例的费用,即可享受国家的福利,生病吃药...
私家车送小件货物合法吗?会受到... 学好法律是很重要的,如果对于某些领域的法律规定不熟悉,也许你无意间就犯法了。比如私家车帮别人送货并收...
副科级待遇工资多少,副科级工资...   公务员应该是很多人都想要考的岗位,考入了就是铁饭碗了,算是待遇很稳定了,所以也就出现了几万人争夺...