接口的使用

接口的概述

概述与特点

概述:是一个特殊的抽象类;只是接口没有继承关系

接口的主要作用是在实现多态上

接口中的方法都是抽象方法(除非有特殊设定),更形象的去使用多态

语法设计: 接口与实现类的关系

interface 接口名{

抽象方法;

}

class 实现类 implements 接口{

重写抽象方法;

}

与抽象类的异同

相同点:

都可以生成class文件

都不能具体化(不能实例化对象)

都可以调用Object的所有方法(继承性-Object是老祖宗)

都可以作为引用类型(多态应用)

不同点:

接口中定义的属性是公开的静态常量 默认加:public static final

接口中定义的方法为公开的抽象方法 默认加:public abstract

接口中不能有构造方法,没有静态代码块和动态代码块

应用场景

接口与抽象类类似,就是为多态而生;在应用场景上也是一样的

直接多态


public class caogao {
	public static void main(String[] args) {
		//实例化对象
		Cat cat = new Cat();
		cat.eat();
	}
}
//创建一个接口
interface Eat{
	void eat();
}

//创建类实现接口
class Cat implements Eat{
	@Override
	public void eat() {
		System.out.println("猫吃鱼");
		
	}
	
}

传参多态

接口使用传参多态的场景:将接口当成标准或规范或约定

接口实现多态的好处:可扩展性,维护性更强;解耦合(只需一个接口引用);更容易更换具体实现;容易模块分离

public class caogao {
	public static void main(String[] args) {
		//实例化对象
		Computer computer = new Computer();
		computer.connect(new Mouse());
		computer.connect(new Keyboard());
	}
}
//创建一个接口
interface USB{
	void run();
}

//创建类实现接口
class Mouse implements USB{

	@Override
	public void run() {
		System.out.println("鼠标正在运行");
		
	}
	
}

class Keyboard implements USB{

	@Override
	public void run() {
		System.out.println("键盘正在运行");
		
	}
	
}
//创建第三方类
class Computer{
	public void connect (USB usb) {
		usb.run();
	}
	
}

返回值多态

//返回值多态案例:
//我要购买usb标准的设备: 1.鼠标   2.硬盘
//分析:类-Person  Mouse,硬盘   接口:usb标准   方法:购买,使用
interface USB{
	int MOUSE = 1;  //状态值--接口常量
	int DISK = 2;  
	void use();  //usb设备使用的方法
}
class Mouse implements USB{

	@Override
	public void use() {
		System.out.println("usb标准的鼠标正在使用...");
	}
}
class Disk implements USB{

	@Override
	public void use() {
		System.out.println("usb标准的硬盘正在使用");
	}
}
class Person{
	public USB bug(int flag) {
		if(flag==USB.MOUSE) {
			return new Mouse();
		}else if(flag==USB.DISK) {
			return new Disk();
		}else {
			return null;
		}
	}
}
public class Test1 {
	public static void main(String[] args) {
		Person p = new Person();
		USB usb = p.bug(USB.MOUSE);
		if(usb!=null) {
			usb.use();
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值