Java-接口

Java-接口,第1张

在java中只有单继承,当一个类需要继承多个类的时候,name就需要考虑使用接口
在项目开发过程中,接口用的非常广泛
1、接口使用interface定义
2、如果一个类实现了一个接口,那么需要把接口中的所有的抽象方法全部实现
3、一个类实现接口使用implements
特征:
1、接口中的方法都是使用public abstract修饰的,即使不写public修饰符,它不是default修饰,仍然是public修饰
2、接口不可以被实例化,这一点和抽象类一样,接口中不能有构造器,而抽象类中可以有构造器
抽象类中虽然有构造器但是不能实例化一个对象,这个并不影响构造器的存在,因为之前我们讲过
只要使用new关键字创建一个对象,就一定存在一个对应的构造器,但是构造器的存在不能决定是否能够创建对象;
3、实现类必须实现所有的抽象方法,这点和抽象类不太一样,抽象类中可以不实现所有的抽象方法,name此时这个类
也必须定义为抽象类
4、实现类可以实现多个接口
5、接口中的变量都是静态常量,默认修饰符是public static final,即使不写修饰符,它也是public修饰的,而不是default缺省的
6、接口之间是可以相互继承的,而且可以多继承
注意:
1、接口表示一种能力,体现在接口的方法上
2、关心实现类有何能力,而不关心实现细节
3、面向接口的约定而不考虑接口的具体实现
作业1:实现鼠标、风扇对USB接口的使用  
共5个包


//第一步  创建接口
public interface USB {
    //定义一个数据传输的方法
    public abstract void dataTransfer();
}

//第二步  对接口进行实现
public class Upan implements USB {
    @Override
    public void dataTransfer() {
        System.out.println("正在进行数据传输");
    }
}

//第三步  鼠标进行对接口的使用
public class Mouse implements USB {
    @Override
    public void dataTransfer() {
        System.out.println("鼠标正在点击电脑");
    }
}

//第四步  风扇进行对接口的使用
public class FAN implements USB {
    @Override
    public void dataTransfer() {
        System.out.println("风扇正在转");
    }
}

//第五步  Test 测试类

public class TestUSB {
    public static void main(String[] args) {
        FAN fan=new FAN();
        fan.dataTransfer();
        Mouse mouse=new Mouse();
        mouse.dataTransfer();
        Upan upan=new Upan();
        upan.dataTransfer();
    }
}

//结果

风扇正在转
鼠标正在点击电脑
正在进行数据传输
2、对打印机工作原理的实现


//先创建两个接口   分别为纸张大小  黑白彩印
//1
public interface Paper {
//    a4
    public abstract String getA4Paper();
//    a3
    public abstract String  getB5Paper();
}

//2
public interface InkBox {
    //黑白墨
    public abstract String getWhiteAndBlack();
    //彩墨
    public abstract String getColor();
}

// 3  创造实现类对其中的四个方法进行实现

public class Printer implements InkBox,Paper{
    @Override
    public String getColor() {
        return "使用彩墨打印";
    }

    @Override
    public String getA4Paper() {
        return "使用A4纸打印";
    }

    @Override
    public String getB5Paper() {
        return "使用B5纸打印";
    }

    @Override
    public String getWhiteAndBlack() {
        return "使用黑白墨";
    }
}

//4.创建测试类 
public class TestPrinter {
    public static void main(String[] args) {
        Printer printer=new Printer();
        System.out.println(printer.getA4Paper());
        System.out.println(printer.getColor());
    }
}

3 开关门的实现以及其他方法的实现

// 1 创建两个接口  关门开门  和  拍照
//  1
public interface lock {
    public abstract void openlock();
    public abstract void closelock();
}
//  2
public interface DoorBell {
    //拍照
    public abstract void photo();
}

//3 对方法进行实现
public class lockDoor extends Door implements lock,DoorBell{//Runnable, Serializable

    @Override
    public void openDoor() {
        System.out.println("开门");
    }

    @Override
    public void ckoseDoor() {
        System.out.println("关门");
    }

    @Override
    public void openlock() {
        System.out.println("开锁");
    }

    @Override
    public void closelock() {
        System.out.println("关锁");
    }

    @Override
    public void photo() {
        System.out.println("咔嚓..照片已存储");
    }
}

//4 Test

public class TestLockDoor {
    public static void main(String[] args) {
        lockDoor lockDoor=new lockDoor();
        lockDoor.openlock();
        lockDoor.openDoor();
        lockDoor.ckoseDoor();
        lockDoor.closelock();
        lockDoor.photo();
    }
}


//结果
开锁
开门
关门
关锁
咔嚓..照片已存储

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/741371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存