【Java】接口、多态——笔记本USB接口案例

本文深入探讨Java9及更高版本中接口的增强特性,包括常量、抽象方法、默认方法、静态方法和私有方法的使用。同时,通过USB接口案例展示了多态性和接口在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Java 9+版本中,接口的内容可以有:
1、成员变量其实是常量
public static final 数据类型 = 数据值;
注意:常量名必须进行赋值,一旦赋值不可改变
2、接口中最重要的就是抽象方法
public abstract 返回值类型 方法名称(参数列表);
注意:实现类必须覆盖重写所有的接口方法,除非实现类是抽象类
3、从java 8开始,接口里允许定义默认方法
public default 返回值类型 方法名称(参数列表){方法体}
注意:默认方法也可以被覆盖重写
4、从Java 8开始,接口里允许定义静态方法
public static 返回值类型 方法名称(参数列表){方法体}
注意:应该通过接口名称进行调用 不能通过实现类对象调用
5、从Java 9 开始,接口里允许定义私有方法
普通私有方法: private 返回值类型 方法名称(参数列表){方法体}
静态私有方法:private static 返回值类型 方法名称(参数列表){方法体}
注意:private方法只有接口自己才能调用

多态中成员变量和成员方法的使用:
成员变量:编译看左边 运行也看左边
成员方法:编译看左边 运行看右边

判断一个父类引用的对象是什么子类
instanceof
if(animal instanceof Dog){
Dog dog=(Dog)animal;
}
if(animal instanceof Cat){
Cat cat=(Cat)animal;
}

笔记本USB接口案例
USB接口

public interface USB {
	public abstract void open();
	public abstract void close();
}

鼠标类

public class Mouse implements USB{
	@Override
	public void open() {
		System.out.println("插入鼠标");
	}

	@Override
	public void close() {
		System.out.println("鼠标退出");
	}
	public void click() {
		System.out.println("鼠标点击");
	}
}

键盘类

public class Keyboard implements USB{
	@Override
	public void open() {
		System.out.println("插入键盘");
	}

	@Override
	public void close() {
		System.out.println("键盘退出");
	}
	public void input() {
		System.out.println("键盘输入");
	}
}

电脑类

public class Computer {
	public void powerOn() {
		System.out.println("打开电脑");
	}
	public void powerOff() {
		System.out.println("关闭电脑");
	}
	
	//插入USB设备
	public void insertDevice(USB usb) { 
		usb.open();	
	}
	//使用USB设备
	public void useDevice(USB usb) {
		if(usb instanceof Mouse) {
			Mouse mouse = (Mouse)usb; //向下转型
			mouse.click();
		}else if(usb instanceof Keyboard) {
			Keyboard keyboard  = (Keyboard)usb;
			keyboard.input();
		}
	}
	//退出USB设备
	public void exitDevice(USB usb) {
		usb.close();
	}
}

主函数测试

public class Demo {

	public static void main(String[] args) {
		Computer computer = new Computer();
		computer.powerOn(); //打开电脑
		
		Mouse mouse = new Mouse(); //创建一个鼠标
		Keyboard keyboard = new Keyboard(); //创建一个键盘
		
		computer.insertDevice(mouse);
		computer.useDevice(mouse);
		
		computer.insertDevice(keyboard);
		computer.useDevice(keyboard);
		
		computer.exitDevice(mouse);
		computer.exitDevice(keyboard);
		
		computer.powerOff();
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值