-
java instanceof与类型转换
instanceof与类型转换(基础篇)
instanceof可以用来判断一个对象是什么类型,判断两个类之间是否存在父子关系。
都在代码里啦
//测试类
package oop;
import oop.demo02.Person;
import oop.demo02.Student;
import oop.demo02.Teacher;
public class Application {
public static void main(String[] args) {
//在这四个类之间的关系
//Object>String
//Object>Person>Teacher
//Object>Person>Student
//用instanceof输出判断各类之间的关系
//System.out.println("x instanceof y");能不能编译通过主要看x与y是不是存在父子关系。
//结果为true还是false看x所指向的实际类型是不是y的子类型。
Object object = new Student();
System.out.println(object instanceof Student);//true
System.out.println(object instanceof Person);//true
System.out.println(object instanceof Teacher);//False
System.out.println(object instanceof Object);//true
System.out.println(object instanceof String);//false
System.out.println("*******************************");
Person person =new Student();
System.out.println(person instanceof Student);//true
System.out.println(person instanceof Person);//true
System.out.println(person instanceof Teacher);//False
System.out.println(person instanceof Object);//true
//System.out.println(person instanceof String);//false编译时就会报错
System.out.println("******************************");
Student student =new Student();
System.out.println(student instanceof Student);//true
System.out.println(student instanceof Person);//true
// System.out.println(student instanceof Teacher);//False//编译报错
System.out.println(student instanceof Object);//true
// System.out.println(student instanceof String);//编译报错
}
}
//父类与子类,都继承父类
package oop.demo02;
public class Student extends Person {
}
package oop.demo02;
public class Person {
public void run(){
System.out.println("run");
//在这里是无法重写子类的方法的。
}
}
package oop.demo02;
public class Teacher extends Person {
}
类型转换
当父类转向子类需要强制转换,向下转型
子类转向父类自动转换。,向上转型
父类的引用指向子类的对象。
代码示例:
//首先我们写一个父类
package oop.demo02;
public class Person {
public void run(){
System.out.println("run");
//在这里是无法重写子类的方法的。
}
}
//再写一个子类
package oop.demo02;
public class Student extends Person {
public void go() {
System.out.println("go");
}
}//子类里面有自己的go方法和继承了父类的run方法
//写一个测试类调用
package oop;
import oop.demo02.Person;
import oop.demo02.Student;
//类型之间的转换
public class Application {
public static void main(String[] args) {
//父转子,要强转,子转父,不需要。
// Person oba = new Student();
//把student对象类型转换为Student,就可以使用Student类型的方法了
//Student student = (Student) oba;//进行强制转换。
// student.go();
Student student = new Student();
student.go();
Person person = student;//低转高
}
}
出处:https://www.cnblogs.com/kuangsun125/p/15103515.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比