十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
目录
创新互联专业为企业提供永城网站建设、永城做网站、永城网站设计、永城网站制作等企业网站建设、网页设计与制作、永城企业网站模板建站服务,10多年永城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。基本知识
接口的概念
接口的语法
接口的拓展
接口的应用
谢谢大家的观看!!!
接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。
在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。
1.接口的定义:权限 + interface + 接口名
eg: public interface Ishape (接口名最好是用大写字母i打头)
2.接口底下不能写构造方法
3.接口中的成员默认是public static final,不写也没有关系
4.接口中的方法不写默认是public abstract
5.接口不能被实例化
6.接口要通过类来实现
public class + 类名称 + implements + 接口名称
7.接口中的方法不能有具体实现
如果非要有实现也不是不行 ,加default或者static
接口的拓展接口c既有原来自己的功能(funcc),也能用接口A,接口B的功能
接口的应用1.先建立一个USB的接口,里面有两个方法,打开和关闭
2.建立一个鼠标类,用implement去连接IUSB接口
tips:怎 么 快 速 写 重 写 方 法
先 用 鼠 标 点 击 红 色 的 线,然 后 在 按 alt+回 车,就 会 出 现 重 写 方 法 啦
3.用同样的方法再建立一个键盘类,方法同上
4. 再建立一个电脑类,方法有打开和关闭,我们试图通过电脑类来使其他的设备也能连接IUSB接口
如果这里接收到的是鼠标,就是鼠标在用这个接口,如果接受到的是键盘,那就是键盘在用这个接口,这里用了向下转型通过 instanceof 找到鼠标类,如果直接用usb去用鼠标类的方法click的是不行的,因为IUSB里面没有click这个方法,在鼠标类里面才有,所以这里要 类型强转 ,将usb强转为鼠标类,再去用click方法 ,下面的同理
5.最后再调用computer类,运行起来
运行结果如下
如果上面这个例子没很明白的话,这是我的问题,可能有点抽象,那我们再来看一个例子吧
1.先定义一个动物类,并给上构造方法
2.定义一个IRunning接口
这里先是继承Animal类,再用implements 和接口连接上,里面先调用父类的构造方法,再重写接口的run方法
3.用同样的方式去完成🕊Bird,🐟Fish类吧
4.我们能不能把之前的接口都用上?当然可以!!!建立一个鸭子类,鸭子又会跑又会飞又会游,直接在implement后面多加几个接口就可以了,然后依次进方法重写
5.方法调试,运行起来
这时候可能会想,那🦆鸭子类怎么办呢
怎么办? 好办!
和前面的其他动物一样,这里是为了区分,才加的1和2
我们一起来看一下结果吧
这里我们可以感受到,接口就是一种功能,我们就算不是动物也能用比如建立一个pen类
结果如下
以 上 我 们 发 现 就 算 不 是 动 物 也 能 用 我 们 的 跑 步 的 接 口 ,所 以 我 们 的 接 口 是 撇 开 了 类 型 的,只 要 满 足 这 个 功 能 就 可 以
代码在底下,粘贴食用吧~
谢谢大家的观看!!!abstract class Animal{ public String name; //构造方法赋初值 public Animal(String name) { this.name = name; } } interface IRunning{ void run(); } interface ISwimming{ void swim(); } interface IFly{ void fly(); } class Dog extends Animal implements IRunning{ public Dog(String name) { super(name); } @Override public void run() { System.out.println(name +"用两条狗腿腿在跑"); } } class Fish extends Animal implements ISwimming{ public Fish(String name) { super(name); } @Override public void swim() { System.out.println(name+"用两条腿在游"); } } class Bird extends Animal implements IFly{ public Bird(String name) { super(name); } @Override public void fly() { System.out.println(name+"用翅膀飞"); } } class Duck extends Animal implements IRunning,IFly,ISwimming{ public Duck(String name) { super(name); } @Override public void run() { System.out.println(name+"用两条腿在跑"); } @Override public void swim() { System.out.println(name+"用两条腿在游"); } @Override public void fly() { System.out.println(name+"用翅膀飞"); } } class pen implements IRunning{ @Override public void run() { System.out.println("我也能跑,没想到吧!"); } } public class test { //用接口去调用 public static void fly(IFly iFly){ iFly.fly(); } public static void swim(ISwimming iSwimming){ iSwimming.swim(); } public static void walk(IRunning iRunning){ iRunning.run(); } public static void main(String[] args) { walk(new pen()); walk(new Dog("二蛋")); swim(new Fish("小鱼儿")); fly(new Bird("雷霆战鸡")); System.out.println("======="); walk(new Duck("小鸭1")); swim(new Duck("小鸭2")); } }
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧