Java对象向上转型和向下转型

1 向上转型(不需要强制转换): 由抽象度低的类向抽象度高的类转型(子类—父类)

好处:可以操作和使用子类继承或重写的方法

失处:失去对子类新增成员变量和新增成员方法的操作和使用

2 向下转型(需要强制转换): 由抽象度高的类向抽象度低高的类转型(父类—子类)

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

父类引用指向子类对象。子类和父类中定义同名的变量时,仅仅是隐藏了,变量没有多态性;而对于覆盖的方法,Java表现出多态性,会调用更具体的子类里面的方法,无论从哪里调用,无论使用什么引用类型调用。(引用)

时间: 2024-10-28 01:15:43

Java对象向上转型和向下转型的相关文章

JavaSE(五)JAVA对象向上转型和向下转型

今天做了一个测试的题目,发现自己还是很多问题没有静下心来做.很多问题是可以自己解决的但是自己一是没有读清题意,二是自己心里太急躁了.所以这个要自己应以为鉴! 对象的转型问题其实并不复杂,我们记住一句话:"父类引用指向子类对象". java中对象的转型分为向上转型和向下转型 一.对象的向上转型 1.1.定义 子类引用的对象转换为父类类型称为向上转型.通俗地说就是是将子类对象转为父类对象.此处父类对象可以是接口 1.2.解释 比如说我有两个类,一个是父类Animal,另一个是Bird类为子

Java向上转型和向下转型(附具体样例)

                                            Java向上转型和向下转型(附具体样例) 熬夜整理的关于Java向上和向下转型的样例,很的通俗易懂哦~~~~ 一.向上转型 package com.sheepmu; class Animal { public void eat() { System.out.println("父类的 eating..."); } } class Bird extends Animal { @Override publ

java向上转型和向下转型

一直不太明白这个概念,于是在网上搜索了一下文章转载自:http://www.cnblogs.com/fickleness/p/3149011.html 转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展. 向上转型:子类引用的对象转换为父类类型称为向上转型.通俗地说就是是将子类对象转为父类对象.此处父类对象可以是接口 向下转型:父类引用的对象转换为子类类型称为向下转型. 前者

Java转型(向上转型和向下转型)

在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型. 5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就是说我们更倾向于使用抽象概念"人".再例如,麻雀是鸟类的一种(鸟类的子类),而鸟类则是动物中的一种(动物的子类).我们现实中也经常这样说:麻雀是鸟.这两种说法实际上就是所谓的向上转型,通俗地说就是子类转型成父类.这也符合Java提倡的面向抽象编程思想.来看下面的代码: package a.

重新认识java(五) ---- 面向对象之多态(向上转型与向下转型)

多态,大概每个人都知道.但是,又有几个人真的理解什么是多态.多态有哪些细节呢?如果你看到这篇文章的名字,脑海中对多态没有一个清晰的概念,不妨点进来看看,也许会有收获. 什么是多态 简单的理解多态 多态,简而言之就是同一个行为具有多个不同表现形式或形态的能力.比如说,有一杯水,我不知道它是温的.冰的还是烫的,但是我一摸我就知道了.我摸水杯这个动作,对于不同温度的水,就会得到不同的结果.这就是多态. 那么,java中是怎么体现多态呢?我们来直接看代码: public class Water { pu

【JAVA】关于向上转型与向下转型

向上转型: 子类引用的对象转换为父类类型称为向上转型.通俗地说就是是将子类对象转为父类对象.此处父类对象可以是接口 1 public class Animal { 2 public void eat(){ 3 System.out.println("Animal eat!"); 4 } 5 } 6 7 class Bird extends Animal{ 8 public void eat(){ 9 System.out.println("Bird eat!");

Java向上转型和向下转型(附详细例子)

                                            Java向上转型和向下转型(附详细例子) 熬夜整理的关于Java向上和向下转型的例子,非常的通俗易懂哦~~~~ 一.向上转型 package com.sheepmu; class Animal { public void eat() { System.out.println("父类的 eating..."); } } class Bird extends Animal { @Override pub

Java入门记(二):向上转型与向下转型

在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文.例子参考了<Java编程思想>. 目录 几个同义词 向上转型与向下转型 例一:向上转型,调用指定的父类方法 例二:向上转型,动态绑定 例三:向上转型,静态绑定 例四:向下转型 转型的误区 1.运行信息(RTTI) 2.数组类型 3.Java容器 几个同义词 首先是几组同义词,由于在不同的书上使用的不同,是造成混淆的原因之一. 父类/超类/基类 子类/导出类/继承类/派生类 静态绑定/前期绑定 动态绑定/后期绑定/运行时绑定 向

java 向上转型和向下转型

学习向上转型和向下转型怎么用没多难,但是为什么那样用,我搞了很多次没弄明白.没弄明白的原因是平时学习时之看例子,而例子一般都比较简单,没有对象之间的调用,一般就是一个对象调用自己的方法. 首先看下怎么用转型. 要转型,首先要有继承.继承是面向对象语言中一个代码复用的机制,简单说就是子类继承了父类中的非私有属性和可以继承的方法,然后子类可以继续扩展自己的属性及方法. 向上转型:子类对象转为父类,父类可以是接口.公式:Father f = new Son();Father是父类或接口,son是子类.

java中的向上转型与向下转型

以前学Javase时就专门注意过这个问题,现在到了现在又犯了这个错误,这个错误让我排查了好久 1 : 向上转型:大体可以理解为子类转换成父类,例子优先还是: 1 public class Animal { 2 public void eat(){ 3 System.out.println("animal eatting..."); 4 } 5 } 7 public class Cat extends Animal{ 9 public void eat(){ 11 System.out.