海阔天空

当前时间为:
欢迎大家来到海阔天空https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

2020java教程:接口

未分类
2020-08-14 17:07:05
1822677238@qq.com

手机扫码查看

2020java教程:接口

接口

接口的语法
接口相当于特殊的抽象类,定义方式、组成部分与抽象类类似

//抽象类


abstract class Animal{
    //1.不能 new 对象,对象不能独立存在
    public static final String NAME="Hello";

    //2.抽象方法(子类必须覆盖)
    public abstract void method();
}
//接口关键字 interface
interface MyInterface{
    //没有构造方法,不能 new 对象
    //1.公开静态常量
    public static final String NAME="Hello";

    //2.公开抽象方法
    public abstract void method();
    //只能公开静态常量、公开抽象方法
}

与抽象类的异同

相同:
1.可编译.class字节码文件
2.不能 new 对象
3.可以作为引用类型
4.具备 Object 类中所定义的方法

不同:
1.所有属性都是公开静态常量,隐式使用 public static final 修饰
2.所有方法都是公开抽象方法,隐式使用public abstract 修饰
3.没有构造方法、动态代码块、静态代码块

什么是接口?
微观概念:接口是一种能力和约定。
接口的定义:代表了某种能力。
方法的定义:能力的具体要求

经验:java为单继承,当父类的方法种类无法满足子类需求时,可实现接口扩充子类能力。
接口支持多实现,可为类扩充多种能力

接口的规范
任何类在实现接口时,必须实现接口中所有的抽象方法,否则此类为抽象类。
实现接口中的抽象方法时,访问修饰符必须是public

接口的使用
同父类一样,接口也可声明为引用,并指向实现类对象。

注意:
1.仅可调用接口中所声明的方法,不可调用实现类中的独有的方法
2.可强转回实现类本身类型,进行独有方法调用。

接口的多态

public class demos{
    public static void main(String[] args) {
        Animal d=new Dog();
        d.eat();
        d.sleep();
        //d.run();//父类没有定义跑方法,无法调用
        Runnable dog=new Dog();
        dog.run();//接口赋予给狗对象跑方法
    }
}
abstract class Animal{
    public abstract void eat();
    public abstract void sleep();
}
class Dog extends Animal implements Runnable{
    public void eat(){
        System.out.println("父类继承的吃方法");
    }
    public void sleep(){
        System.out.println("父类继承的睡方法");
    }
    public void run(){
        System.out.println("接口赋予的跑方法");
    }
}
interface Runnable{
    void run();
}

 

常见关系
单继承:extends 父类名称

类与接口
多实现:implements 接口名称1、接口名称2

接口与接口
多继承:extends 接口1,接口2

常量接口
将多个常用于表示状态或固定值的变量,以静态常量的形式定义在接口中统一管理,提高代码可读性。


什么是接口?
宏观概念:接口是一种标准

接口的实现者:U盘、USB风扇
接口/标准:USB
接口的使用者:USB接口

回调原理
接口回调:先有接口的使用者,后有接口的实现者
工具的使用者4(程序猿)–>接口的使用者2(工具)–>接口1(标准)–>接口的实现者3(程序猿)

接口的好处
1.程序的耦合度降低
2.更自然 的会用多态
3.设计与实现完全分离
4.更容易搭建程序框架
5.更容易更换具体实现

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注