栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

接口(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

接口(一)

类:

- 类的方法是具体的,方法中的结构写好之后就不能改了

- 类是不完全抽象的,创建的对象是非常相似的

接口:

- 关键字:interface

- 格式:public interface 接口名{}

- 特性:1.接口中的方法是抽象的,没有方法体

             2.接口中的属性默认静态常量 static final 修饰,必须初始化

             3.接口中所有的方法访问修饰符都是public,所以实现后的子类中对应方法也应该为public

举个例子:

public interface Lock{
    
    static final String name = "ali";
    static final int age = 20;

    int add(int a, int b);

}

抽象方法:

- 接口既没有属于对象的属性,方法也没有方法体,不可以直接创建对象

- 接口可以作为一种类型存在。我们在定义属性、参数、返回值的时候,都需要类型;格式为:数据类型 变量名

接口的使用方式:

- 1.创建一个类实现接口

- 2.将接口中的抽象方法在此重写实现,加上方法体

public interface Lock {

    public void open();
    public void close();
}
public class Lock_ByFace implements Lock {
    public void open(){
        System.out.println("人脸识别开锁!");
    }
    public void close(){
        System.out.println("人脸识别关门!");

    }
}

分析:

1. Lock_ByFace是抽象实现的具体类

2. Lock_ByFace作为Lock接口的实现类:

(1)继承Lock类型,可以直接使用Lock接口中的静态常量

(2)必须重写Lock中的方法。

这是一个简单普通的Door类,可以实现开门和关门的操作。

public class Door {

    public void open(){
       System.out.println("拆下门闩,开门!");
    }

    public void close(){
        System.out.println("架上门闩,关门!");
    }
}
public class DoorManage {
    public static void main(String[] args) {
        Door olddooe=new Door();
        olddooe.open();
        olddooe.close();
    }
}

但是我们想改变开关方式就比较困难,因为我们不可以“拆掉门”。

现在我们给门加锁:

public interface Lock {

    public void open();
    public void close();
}
public class Lock_ByFace implements Lock {
    public void open(){
        System.out.println("人脸识别开锁!");
    }
    public void close(){
        System.out.println("人脸识别关门!");

    }
}
public class Door {

    private Lock doorLock;        //接口是一种类型,可以声明属性,只要不创建对象,想做什么都可以

    //给门配锁
    public void setDoorLock(Lock doorLock){
        this.doorLock=doorLock;
    }
    public void useLockOpen(){
        doorLock.open();
    }
    public void useLockClose(){
        doorLock.close();
    }
}
public class DoorManage {
    public static void main(String[] args) {
        Door oldDoor=new Door();
        //配锁
        //Lock lock =new Lock() ,无法实例化

        //使用Lock的实现类来创建对象
        Lock_ByFace faceLock=new Lock_ByFace();    

        //配置锁对象
        oldDoor.setDoorLock(faceLock);
        oldDoor.useLockOpen();
        oldDoor.useLockClose();
    }
}

假如我们想进行升级,可以重新创建一个类,名字叫做密码开锁。

public class PwdLock implements Lock {

    @Override
    public void open(){
        System.out.println("输入密码正确,开门!");
    }
    public void close(){
        System.out.println("输入密码正确,关门!");

    }
public class DoorManage {
    public static void main(String[] args) {
        Door oldDoor=new Door();
        //配锁
        //Lock lock =new Lock() ,无法实例化
        PwdLock pwd=new PwdLock();
        oldDoor.setDoorLock(pwd);
        oldDoor.useLockOpen();
        oldDoor.useLockClose();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/708779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号