浅谈浅谈Java向下转型的意义向下转型的意义
主要介绍了浅谈Java向下转型的意义,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一开始学习 Java 时不重视向下转型。一直搞不清楚向下转型的意义和用途,不清楚其实就是不会,那开发的过程肯定也想不
到用向下转型。
其实向上转型和向下转型都是很重要的,可能我们平时见向上转型多一点,向上转型也比较好理解。
但是向下转型,会不会觉得很傻,我是要用子类实例对象,先是生成子类实例赋值给父类引用,在将父类引用向下强转给子类
引用,这不是多此一举吗?我不向上转型也不向下转型,直接用子类实例就行了。
我开始学习Java时也是这么想的,这误区导致我觉得向下转型就是没用的。
随着技术的提升,我在看开源的项目学习,发现很多地方都用了向下转型的技术,这就让我重视了起来,想要重新来复习(学
习)这个知识点。也是搜索了许多博客文章,但都没具体说明向下转型,只是给了例子演示怎么使用,反而是向上转型讲了一
堆(可能是我没找到)。
这篇博客就是讲向下转型的,那我们就来学习下向下转型,了解下这种特性的意义和使用场景
新建一个电子产品接口,如下:
public interface Electronics{
}
很简单,什么方法都没有。
新建一个Thinkpad笔记本类,并实现电子产品接口:
public class Thinkpad implements Electronics{
//Thinkpad引导方法
public void boot(){
System.out.println("welcome,I am Thinkpad");
}
//使用Thinkpad编程
public void program(){
System.out.println("using Thinkpad program");
}
}
新建一个Mouse鼠标类,并实现电子产品接口:
public class Mouse implements Electronics{
//鼠标移动
public void move(){
System.out.println("move the mouse");
}
//鼠标点击
public void onClick(){
System.out.println("a click of the mouse");
}
}
新建一个Keyboard键盘类,并实现电子产品接口:
public class Keyboard implements Electronics{
//使用键盘输入
public void input(){
System.out.println("using Keyboard input");
}
}
这里子类比较多,是为了更好的理解。每个类的方法的逻辑实现也很简单。打印了一行信息
接下来,我们想象一个情景:我们去商城买电子产品,电子产品很多吧,比如笔记本电脑,鼠标,键盘,步步高点读机哪里不
评论10