用instanceof关键字进行类型判断和笔记本USB接口案例
2022/7/3 23:20:31
本文主要是介绍用instanceof关键字进行类型判断和笔记本USB接口案例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
instanceof关键字进行类型判断
如何知道一个父类引用的对象,本来是什么子类
格式:
对象 instanceof 类名称
这将会得到一个boolean值结果,也就是判断前面的对象能不能当做后面类型的实例。
public class Cat extends Animal{ @Override public void eat() { System.out.println("猫吃鱼"); } @Override public void watch() { System.out.println("猫卖萌"); } }
public class Dog extends Animal{ @Override public void eat() { System.out.println("狗吃shit"); } @Override public void watch() { System.out.println("狗看家"); } }
public abstract class Animal { public abstract void eat(); public abstract void watch(); }
public class Test { public static void main(String[] args) { //本来是一只狗 Animal animal = new Dog(); //如果希望掉用子类特有方法,需要向下转型 //判断一下父类引用animal本来是不是Dog if (animal instanceof Dog){ Dog dog = (Dog) animal; dog.watch(); } if (animal instanceof Cat){ Cat cat = (Cat) animal; cat.watch(); } giveMe(new Dog()); } public static void giveMe(Animal animal){ if (animal instanceof Dog){ Dog dog = (Dog) animal; dog.watch(); } if (animal instanceof Cat){ Cat cat = (Cat) animal; cat.watch(); } } }
笔记本USB接口案例
public interface USB { //打开设备 public abstract void open(); //关闭设备 public abstract void close(); }
public class Computer { public void powerOn(){ System.out.println("笔记本电脑开机"); } public void powerOff(){ System.out.println("笔记本电脑关机"); } //使用USB public void useDevice(USB usb){ usb.open(); //先判断 if (usb instanceof Mouse){ //向下转型 Mouse mouse = (Mouse) usb; mouse.click(); }else if (usb instanceof Keyboard){ Keyboard keyboard = (Keyboard) usb; keyboard.type(); } usb.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 type(){ System.out.println("键盘输入"); } }
public class Test { public static void main(String[] args) { //创建一个笔记本电脑 Computer computer = new Computer(); computer.powerOn(); //准备一个鼠标,给电脑使用 // Mouse mouse = new Mouse(); //进行向上转型(多态写法) USB usbMouse = new Mouse(); //参数是USB类型,正好传递进去的就是USB鼠标 computer.useDevice(usbMouse); //创建一个USB键盘(没使用多态) Keyboard keyboard = new Keyboard(); //方法参数是USB类型,传递进去的是实现类对象 computer.useDevice(keyboard); computer.powerOff(); System.out.println("=============="); //double转double method(10.0); //int转double method(10); int a= 30; method(a); } public static void method(double num){ System.out.println(num); } }
搜索
复制
这篇关于用instanceof关键字进行类型判断和笔记本USB接口案例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26UniApp 中如何实现使用输入法时保持页面列表不动的效果?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中怎么实现输入法弹出时禁止页面向上滚动?-icode9专业技术文章分享
- 2024-11-26WebSocket是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-26页面有多个ref 要动态传入怎么实现?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中实现一个底部输入框的常见方法有哪些?-icode9专业技术文章分享
- 2024-11-26RocketMQ入门指南:搭建与使用全流程详解
- 2024-11-26RocketMQ入门教程:轻松搭建与使用指南
- 2024-11-26手写RocketMQ:从入门到实践的简单教程
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享