1.接口
关键字:interface implements(实现接口)
接口的定义:接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式
接口的用途:定义规范,接口定义某种功能的规范,当我们编写的某些类突然有一天需要某些新增的业务和功能时,这时只需要该类接口,重写接口的抽象方法,具备的该功能
语法格式:
package com.jk.k;
//定义接口
interface Person{
//抽象方法
public void eat();
}
//实现
public class Demo01 implements Person{
//重写接口方法
@Override
public void eat() {
// TODO Auto-generated method stub
}
}
1.
在接口定义属性默认带final static
2.
在接口中定义方法abstract默认自带
3.
jdk1.8新特性 可写方法体
package com.jk.k;
interface A{
final static String Name="张三";
//在接口定义属性默认带final static
int AGE=6;
public abstract void run();
//在接口中定义方法abstract默认自带
public void test();
//jdk1.8新特性 可写方法体
public default void eat() {
System.out.println("方法体");
}
}
public class Demo02 {
}
接口注意事项:
1.
接口下面可以有成员属性,但是成员属性必须赋值 (被final static 修饰)
常量2.
接口下面的方法默认的是抽象方法(被abstract修饰)
3.
接口下面不能有非抽象的方法
4.
从jdk1.8以后,接口下面可以有带有方法体的方法,只不过这个方法是使用default修饰的方法
5.
接口中没有构造方法,不能被实例化
6.
一个类可以实现多个接口 class 类名 implements 接口1,接口2
package com.jk.k; //爷爷类 interface A{ public void test(); } //接口可以继承接口 父类 interface B extends A{ public void test1(); } //孙子类 class C implements B{ @Override public void test() { // TODO Auto-generated method stub } @Override public void test1() { // TODO Auto-generated method stub } } //实现两个接口 多实现 public class Demo03 implements A,B{ @Override public void test1() { // TODO Auto-generated method stub } @Override public void test() { // TODO Auto-generated method stub } }
7.
接口可以继承接口
interface A{ } //接口继承接口 interface B extends A{ //需重写父类方法 }
2.案例
电脑类:去实现以下的三个接口
电源接口
USB接口
网络接口
上面有三个接口,就是对对象电脑增加功能的
咱们有一个 电脑类 单独买一个电脑 给咱们预留了充电的接口 可以充电
预留了USB接口可以插u盘
预留了网络接口的话,就可以上网了
电源接口:
//电源接口
interface Adapter {
public void input();
}
USB接口:
//USB接口
interface USB {
public void mouse();
}
网络接口:
//网络接口
interface Net {
public void internet();
}
电脑类 Computer:
class Computer implements Adapter, USB, Net{
@Override
public void internet() {
// TODO Auto-generated method stub
System.out.println("电脑联网");
}
@Override
public void mouse() {
// TODO Auto-generated method stub
System.out.println("电脑连接鼠标");
}
@Override
public void input() {
// TODO Auto-generated method stub
System.out.println("电脑充电");
}
以上代码去实现接口需要 implements 关键字
实现类:
public class Test {
public static void main(String[] args) {
Computer computer = new Computer();
computer.mouse();
computer.input();
computer.internet();
}
参考文章
Final: Final关键字
抽象类:Java抽象类
感谢阅读~