java基础--接口

接口

接口的语法

接口相当于特殊的抽象类,定义方式、组成部分与抽象类类似。
使用interface关键字定义接口。
没有构造方法,不能创建对象。
只能定义:公开静态常量、公开抽象方法。

interface MyInterface{
	public static final String FIELD="value";
	public abstract void method();
}

与抽象类的异同

相同:

  1. 可编译成字节码文件。
  2. 不能创建对象。
  3. 可以作为引用类型。
  4. 具备Object类中所定义的方法。

不同:

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

什么是接口

微观概念:接口是一种能力。

  1. 接口的定义:代表了某种能力。
  2. 方法的定义:能力的具体要求。
    经验:java为单继承,当父类的方法种类无法满足子类的需求时,可实现接口扩充子类能力。
    接口支持多实现,可为类扩充多种能力。
    宏观概念:接口是一种标准。

接口的规范

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

接口引用

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

  1. 仅可调用接口中所声明的方法,不可调用实现类中独有的方法。
  2. 可强转回实现类本身类型,进行独有方法调用。
  3. 特殊:通过接口可调用Object中的公开方法。

接口的多态

多种不同类型的引用指向同一个对象时,表示看待对象的视角不同。
不同引用所能看到的对象范围不同,只能调用自身类型中所声明的部分。

interface Runnable{
	public abstract void run();
}

interface Swimmable{
	public abstract void swim();
}

abstract class Animal{
	public void eat(){}
	public void sleep(){}
}

class Dog extends Animal implements Runnable,Swimmable{
	public void run(){}//接口方法
	public void swim(){}//接口方法
	public void shout(){}//独有方法
}

public class Test{
	public static void main(String[] args){
		Dog myDog=new Dog();
		Animal a=myDog;
		Runnable r=myDog;
		Swimmable s=myDog;
	}
}

Dog myDog:把狗当狗看
Animal a:把狗当动物看
Runnable r:把狗当会跑的东西看
Swimmable s:把狗当会游的东西看

常见关系

类与类:单继承、extends 父类名称
类与接口:多实现、implements 接口名称1,接口名称2
接口与接口:多继承、extends 父接口1,父接口2,父接口n

常量接口、标记接口

常量接口将多个常用于表示状态或固定值的变量,以静态常量的形式定义在接口中统一管理,提高代码可读性。
标记接口中没有包含任意成员,仅仅用作标记。
Serializable 可序列化 Cloneable可克隆

回调原理

接口回调:先有接口的使用者,后有接口的实现者。
接口的回调原理

接口的好处

  1. 程序的耦合度降低
  2. 更自然的使用多态
  3. 设计与实现完全分离
  4. 更容易搭建程序框架
  5. 更容易更换具体实现
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值