ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

interface的理解和使用

2022-06-28 11:36:05  阅读:114  来源: 互联网

标签:-- void 接口 匿名 理解 使用 interface new public


接口的理解和使用- Interface

1-接口的理解

/*
接口的使用
1- 接口的使用用--interface来定义
2- Java中。接口和类是并列的两个结构
3--如何定义接口:定义接口中的成员
JDK8:
      1- 全局常量:public static  final(可以省略)
      2- 抽象方法:public abstract  (可省略)
      3- 静态方法:
      4- 默认方法:

4- 接口中不能定义"构造器",接口不可以"实例化"----所以,"接口"让"类"去实现接口(用--implement)
如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以"实例化"
反之--如果实现类没有覆盖接口中所有抽象方法,则实现类还是抽象类

5- java类可以实现多个接口 ---> 弥补类java单继承性(单继承,多实现)
单继承,多实现--的格式:
               class Word extend AA implements BB,CC(单继承,多实现)

6- 接口的具体使用,体系多态性:
7- 接口,实际上可以看做是一种规范:

 */

2- 接口的基础理解使用(1)

public class interfaceTest {
    public static void main(String[] args) {
        Flane flane = new Flane();
        flane.fly();//调用,类实现接口后,重写的方法
    }
}

//1- 接口的测试
interface Flyable {
    //全局常量
    public static final int MAX_SPEED = 7900;
    int MIN_SPEED = 1;//----> 前面的"public static final"可以略,但是效果还在

    //抽象方法
    public abstract void fly();

    void stop(); //----- 前面的"public abstract"可以略

}

//2- 类实现接口的测试(implement)--重写完抽象类的方法,不是抽象类,可以实例化
class Flane implements Flyable {

    @Override//重写,抽象类的方法
    public void fly() {
        System.out.println("awkward-我可以飞");
    }

    @Override//重写,抽象类的方法
    public void stop() {
        System.out.println("我可以停");
    }
}

//3-  类实现接口的测试(implement)--没重写完抽象类的方法,是抽象类,不可以实例化
//我就只,重写了部分的方法,这个还是抽象类abstract
abstract class Kite implements Flyable {
    @Override
    public void fly() {
    }
}

3-接口的使用(3)(区分匿名对象、匿名实现类、非匿名对象、非匿名实现类)

/*
接口的使用:
1- 接口上,体现出了多态
2- 接口,实际上就是定义了一种规范
3- 开发中,体会面向接口编程
 */
public class Use_interface {
    public static void main(String[] args) {
        //解析实现类和对象
        /*
        Computer c = new Computer();
       1-  c是new出来的="对象"
       2-  new Computer();这个Computer="实现类"
       情况:
           1- 如果是匿名对象,非匿名实现类,就不写前面,直接new本身就可以了
           2- 如果是匿名对象,匿名实现类,就不写前面,直接new接口就可以了
           3- 如果是非匿名对象,匿名实现类,前都都写,但是后面new的是接口
           4-如果是非匿名对象,非匿名实现类,前后都写,前面new的一样
         */

        Computer computer = new Computer();
        //1- 创建了接口的非匿名实现类的非匿名对象
        Flash flash = new Flash();//Flash,实现类USB的特性
        computer.transferData(flash);

        //2-  创建了接口的非匿名实现类的匿名对象
        computer.transferData(new Printer());

        //3-创建了接口的匿名实现类的非匿名对象
        //匿名实现类,用接口USB来充当
        USB phone = new USB() {
            @Override
            public void start() {
                System.out.println("我是--匿名实现类的非匿名对象--开始工作");
            }

            @Override
            public void stop() {
                System.out.println("我是--匿名实现类的非匿名对象--停止");
            }
        };
        computer.transferData(phone);

        //4-创建了接口的匿名实现类的匿名对象
        //都匿名
        computer.transferData(new USB() {
            @Override
            public void start() {
                System.out.println("我是--匿名实现类的匿名对象--开始工作");
            }

            @Override
            public void stop() {
                System.out.println("我是--匿名实现类的匿名对象--停止工作");
            }
        });

    }
}

//电脑链接USB
class Computer {
    public void transferData(USB usb) {
        usb.start();
        System.out.println("开始工作----");
        usb.stop();
    }
}

//1-接口
interface USB {
    //定义:长,宽,最大,最小的传输速度

    void start();

    void stop();

}

//2-实现类1
class Flash implements USB {

    @Override
    public void start() {
        System.out.println("USB开始传输");
    }

    @Override
    public void stop() {
        System.out.println("USB停止传输");
    }
}

//3- 实现类2
class Printer implements USB {
    @Override
    public void start() {
        System.out.println("打印机开始传输");
    }

    @Override
    public void stop() {
        System.out.println("打印机停止传输");
    }
}

标签:--,void,接口,匿名,理解,使用,interface,new,public
来源: https://www.cnblogs.com/chen-zhou1027/p/16418868.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有