Java面向对象之instanceof和类型转换
instanceof
- instanceof(类型转换):利用此关键字可以判断某一个对象是否是指定类的实例
格式:
对象 instanceof 类 返回boolean型
- 如果某个对象是某个类的实例,就返回true,否则返回false。
对象的多态性:指的是发生在继承关系类之中,子类和父类之间的转换。
- 向上转型(自动完成):父类 父类对象 = 子类实例;
- 向下转型(强制完成):子类 子类对象 = (子类)父类实例;
package OOP.Demo09;
public class Application {
public static void main(String[] args) {
//Object > String
//Object > Person > Student
//Object > Person > Teacher
//System.out.println(X instanceof Y);//能不能编译通过!通过: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 Object);//true
System.out.println(object instanceof Teacher);//false
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 Object);//true
System.out.println(person instanceof Teacher);//false
//System.out.println(person instanceof String);//编译报错
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 Object);//true
//System.out.println(student instanceof Teacher);//编译报错
//System.out.println(student instanceof String);//编译报错
}
}
类型转换
- 父类引用指向子类的对象
- 把子类转换为父类,向上转型;
- 把父类转换为子类,向下转型——需要强制转换(可能会丢失一些方法)
- 方便方法的调用,减少重复的代码
万物皆有裂隙,那是光照进来的地方。
Java面向对象之instanceof和类型转换的更多相关文章
- Java面向对象的多态
Java中多态的概念是面向对象中除封装和继承外非常重要的知识点,也是Java面向对象三大特性最后一个特性 多态其实就是指对象存在的多种形态,多态分为引用多态和方法多态 引用多态的含义就是:父类的引用可 ...
- Java面向对象程序设计--与C++对比说明:系列3(Java 继承机制)
继承(inheritance)背后的核心思想是: bonus = b; } } Java没有像C++那样提供多继承机制,但提供了接口机制,在后面我们将详细探究接口机制的实现 ...
- Java面向对象 集合(上)
Java面向对象 集合(上) 知识概要: (1)体系概述 (2)共性方法 (3)迭代器 (4)list集合 (5)Set 集合 体系概述: 集 ...
- java面向对象的核心思想
java面向对象的特征之一:封装 1.封装性的使用 package edu.tongji.classdemo; /* 封装性 1.封装的目的:保护某些属性和方法不被外部所见 2.封装的实现 为属性和方 ...
- 面试求职中你需要了解的Java面向对象
从毕业到现在,笔试过好多场 也面了好多场, 一直想写一些东西给找工作的朋友,这篇文章结合个人经历讲解面试中的面向对象.里边有些实例个人以面试题的形式写出来,从程序角度去b帮助大家了解学习,最后希望大家 ...
- Java面向对象编程(一)
由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...
- 夯实Java基础系列1:Java面向对象三大特性(基础篇)
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...
- Java面向对象——三大特性
Java面向对象——三大特性 摘要:本文主要介绍了面型对象的三大特性. 封装 什么是封装 封装,就是指一个类隐藏了对象的属性和实现细节,对自己的数据和方法进行访问权限控制,只允许某些类和对象进行访问和 ...
- Java 面向对象(七)多态
一.多态概述(Polymorphism) 1.引入 多态是继封装.继承之后,面向对象的第三大特性. 通过不同的事物,体现出来的不同的形态.多态,描述的就是这样的状态.如跑的动作,每个动物的跑的动作就是 ...
- Java——面向对象的特征三:多态性
2.5面向对象的特征三:多态性 2.5.1 关于java语言中的向上转型和向下转型 ①向上转型(upcasting) : 子--->父(自动类型转换) ②向下转型(downcasting) : ...
随机推荐
- ArcGIS工具 - 按线分割面
功能说明 在ArcGIS数据处理过程中,有时需要沿线把面要素分割开,可以使用高级编辑中的分割面(Cut Polygon)工具.那么,如果要用线图层分割面图层该怎么办呢?为源GIS为您开发了一个自定义模 ...
- NetCore模型绑定之FromBodyFromUriFromQueryFromRoute
title: .Net Core模型绑定之FromBody.FromUri.FromQuery.FromRoute categories: 后端 date: 2022-10-29 17:21:11 t ...
- 旋转卡壳(求凸包直径)学习笔记 | 题解 P1452 [USACO03FALL]Beauty Contest G /【模板】旋转卡壳
前言 旋转卡壳(Rotating Calipers)可以在凸包上维护许多有用的信息,最常见的就是凸包直径(平面最远点对). 注意:本文不介绍所谓的 "人类智慧" 乱搞做法. 算法流 ...
- three.js一步一步来--如何用线画出一个面--网格板子
网格板子~~~ <template> <div style="width:1000px; height:800px"> <p>网格布局</ ...
- ASP.NET Core RESTful学习理解
一.了解什么是REST REST是"REpresentational State Transfer"的缩写 ,表述性状态传递: REST是一种软件架构风格,用于构造简单.可靠.高性 ...
- Dubbo 入门系列之基于 Dubbo API 开发微服务应用
目标 从零上手开发基于 Dubbo 的微服务 难度 低 环境要求 系统:Windows.Linux.MacOS JDK 8 及以上(推荐使用 JDK17) Git IntelliJ IDEA(可选) ...
- vue学习笔记(一) ---- vue指令(v-for 和 key 属性)
vue指令之v-for和key属性 一. v-for 1. v-for遍历数组 <div id="app"> <h3>好饿,我好想吃~~~~</h3& ...
- C# 委托原理刨析,外加和事件对比
什么是委托 委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用. 在实例化委托时,你可以将其实例与任何具有兼容参数和返回类型的方法进行绑定. 你可以通过委托实例调用方法. 简单的理解,委 ...
- ROS入门:小海龟实验
1.初试小海龟 1.roscore 2.rosrun turtlesim turtlesim_node 3.rosrun turtlesim turtle_teleop_key 2.发布话题控制小海龟 ...
- Mybatis 区别-开发
三.MyBatis 主流的ORM 支持java .NET Ruby三种语言,MyBatis是对JDBC的封装 ORM框架Hibernate 区别: 1)sql 优化方面 Hibernate 使用 HQ ...