1. 一个基类的引用类型变量可以指向其子类的对象:

 a=new Dog("bigyellow","yellow");

  

2. 一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)

System.out.println(a.furname); // error

  

3. 可以使用引用变量instanceof类名来判断该引用型变量所指向的对象是否属于该类或者该类的子类:

System.out.println(a instanceof Animal);  //true
System.out.println(a instanceof Dog); //true

  

4. 子类的对象可以当做基类的对象来使用称作向上转型(upcasting), 反之成为向下转型(downcasting)

a=new Dog("bigyellow","yellow");  //向上转型
Dog d1=(Dog) a;   //向下转型

  

Animal a=new Animal("name");
Dog d=new Dog("dogname","black"); a=new Dog("bigyellow","yellow");
System.out.println(a.name); // bigyellow
System.out.println(a.furname); // error
System.out.println(a instanceof Animal); //true
System.out.println(a instanceof Dog); //true
Dog d1=(Dog) a;
System.out.println(d1.furname); // yellow

  

JAVA基础-- 对象转型 (casting)的更多相关文章

  1. java基础—对象转型

    一.对象转型介绍 对象转型分为两种:一种叫向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型),另一种叫向下转型.转型的意思是:如把float类型转成int类型,把double类 ...

  2. 《java基础——对象的拷贝》

    java基础--对象的拷贝 一.浅拷贝: 规则: 1. 浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化. 2. 浅拷贝相当于两个对象共用一套实例. 格式: 类名 对象 ...

  3. java之对象转型

    对象转型(casting) 1.一个基类的引用类型变量可以“指向”其子类的对象. 2.一个基类的引用不可以访问其子类对象新增加的成员(属性和方法). 3.可以使用 引用变量 instanceof 类名 ...

  4. Java基础--对象的克隆

    文章转载自https://www.cnblogs.com/Qian123/p/5710533.html 阅读目录 为什么要克隆? 如何实现克隆 浅克隆和深克隆 解决多层克隆问题 总结 假如说你想复制一 ...

  5. java之对象转型2

    public class TestCasting2{ public static void main(String args[]){ TestCasting2 test2= new TestCasti ...

  6. java基础-对象的初始化

    一 前言 本节内容将会提到方法重载,对象的初始化,对象的构造器,和this关键字的使用,以及会简要的概括一下java中对象回收机制.觉得文章不错的读者可以关注一下作者的博客和公众号(同博客名称) 二 ...

  7. 对象转型 casting

    一个基类的引用类型变量可以"指向"其子类对象. 一个基类的引用不可以访问其子类对象新增加的成员(属性和方法). 基类强制转型成子类,则能访问子类独有的成员. 可以使用 引用变量in ...

  8. 一天一个Java基础——对象和类

    1.在Java中你所做的全部工作就是定义类,产生那些类的对象,以及发送消息给这些对象 2.可以在类中设置两种类型的元素:字段(也被称作数据成员)和方法(也被称作成员函数) 3.字段可以是任何类型的对象 ...

  9. Java基础-对象与类

    面向对象程序设计概述 面向对象的程序设计(简称OOP)时当今主流的程序设计范型,已经取代了"结构化"过程化程序设计开发技术,Java是完全面向对象的. 类 类设计构造对象的模板或蓝 ...

随机推荐

  1. [转]关于Socket粘包问题

    这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通 ...

  2. oracle常用命令【转载】

    oracle常用命令 一.Oracle数据库实例.用户.目录及session会话查看: 1.ORACLE SID查看设置 查看SID.用户名 $ env|grep SID .select * from ...

  3. UICollectionView之自定义Layout

    #import <UIKit/UIKit.h> @interface WQViewController : UIViewController - (id)initWithFrame:(CG ...

  4. wpf之ListBox横向显示所有ListBoxItem

    Xaml: <Window x:Class="WpfApplication6.MainWindow" xmlns="http://schemas.microsoft ...

  5. 8.2 sikuli 集成进eclipse 报错:Getting the VisionProxy.dll: Can not find dependent libraries...

    如果在执行脚本的时候出现以下错误: Getting the VisionProxy.dll: Can not find dependent libraries... 把Sikuli X 的libs目录 ...

  6. md5 加密模板

    public class MD5Util { public static String getDigestedPassword(String password) throws NoSuchAlgori ...

  7. Exams

    Exams time limit per test 1 second memory limit per test 256 megabytes input standard input output s ...

  8. Hibernate 系列教程6-双向多对多

    双向多对多inverse配置 如果关系两边都使用默认inverse=false配置,表示关系两边都可以管理中间表的数据 关系其中一边设置inverse=true配置,表示自己放弃管理中间表关系,由对方 ...

  9. Skewed Sorting

    Description Farmer John has 2^N (1 <= N <= 10) cows, each conveniently labeled with paint on h ...

  10. 未找到或无法访问服务器 请验证实例名称是否正确并且SQL Server 已配置为允许远程连接

    无法连接到sql server 2008服务器 报下错误 其他信息    在与SQL Server建立连接时出现与网络相关的或特定于实例的错误 未找到或无法访问服务器请验证实例名称是否正确并且SQL ...