JAVA对象 向上转型upcasting,向下转型downcasting
1:向上转型
向上转型,就是java多态中的父类引用指向子类对象。但要注意的是 父类引用不可以访问子类新增加的成员(属性和方法)
代码举例:
/**
* 定义一个父类
*/
public class Anaimal{
private Long height;
public Long getHeight() {
return height;
}
public void setHeight(Long height) {
this.height = height;
} }
/**
* 下面的main方法可测 父类的引用指向子类的对象
* 向上转型 也就是多态
*/
public class Dog extends Anaimal{
private Long dogHeight;
public Long getDogHeight() {
return dogHeight;
}
public void setDogHeight(Long dogHeight) {
this.dogHeight = dogHeight;
}
public static void main(String[] args) {
//父类引用指向子类对象
Anaimal anaimal = new Dog();
//只能访问父类的getHeight方法 不能访问子类的getDogHeight 因为Dog是当做anaimal用的
anaimal.getHeight();
}
}
以上 main()方法中 虽然anaimal是指向Dog()的引用,但是anaimal是当做Anaimal用的 所以看不到Dog独有的那部分
2.向下转型
向下转型就是平时代码中的强转
public static void main(String[] args) {
//父类引用指向子类对象
Anaimal an = new Dog();
//只能访问父类的getHeight方法 不能访问子类的getDogHeight 因为Dog是当做anaimal用的
an.getHeight();
//如果想访问Dog独有的方法,可以把 an向下转型成Dog
//TODO 注意 如果是Anaimal an = new Anaimal(); an是转不成Dog的
Dog an2 = (Dog)an;
an2.getDogHeight();
}
代码TODO 已经说明,使用向下转型的前提,是当前引用 指向的就是所需转型子类的对象。
否则会报错:java.lang.ClassCastException
JAVA对象 向上转型upcasting,向下转型downcasting的更多相关文章
- JavaSE(五)JAVA对象向上转型和向下转型
今天做了一个测试的题目,发现自己还是很多问题没有静下心来做.很多问题是可以自己解决的但是自己一是没有读清题意,二是自己心里太急躁了.所以这个要自己应以为鉴! 对象的转型问题其实并不复杂,我们记住一句话 ...
- java 向上转型与向下转型
转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展. 向上转型:子类引用的对象 ...
- java 向上转型和向下转型
学习向上转型和向下转型怎么用没多难,但是为什么那样用,我搞了很多次没弄明白.没弄明白的原因是平时学习时之看例子,而例子一般都比较简单,没有对象之间的调用,一般就是一个对象调用自己的方法. 首先看下怎么 ...
- java向上转型和向下转型
转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展. 向上转型:子类引用的对象 ...
- Java入门记(二):向上转型与向下转型
在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文.例子参考了<Java编程思想>. 目录 几个同义词 向上转型与向下转型 例一:向上转型,调用指定的父类方法 例二:向上转 ...
- Java中的向上转型和向下转型
首先要明白一点向上转型和向下转型他们都是建立在继承的基础上. 一.向上转型 子类到父类的转换通常称作向上转型,通俗的说就是定义父类对象指向子类对象. 下面通过一个例子来深入理解向上转型. //定义一个 ...
- Java转型(向上转型和向下转型)
在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型. 5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就 ...
- 【JAVA】关于向上转型与向下转型
向上转型: 子类引用的对象转换为父类类型称为向上转型.通俗地说就是是将子类对象转为父类对象.此处父类对象可以是接口 如果子类重写了父类的方法,就根据这个引用指向调用子类重写的这个方法,不是调用父类的, ...
- Java多态的向上转型和向下转型
Java多态的向上转型和向下转型 向上转型:(子类转为父类,自动转型) 格式 :父类类型 变量名 = new 子类类型(); 注:子类赋值给父类,那这时这个父类就能调用子类的方法 向下转型:(父类转为 ...
- Java向上转型和向下转型(附具体样例)
Java向上转型和向下转型(附具体样例) 熬夜整理的关于Java向上和向下转型的样例,很的通俗易懂哦~~~~ 一 ...
随机推荐
- Boto3
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.htmlboto3 安装pip install bot ...
- centos-1 nginx
常用命令 su #切换用户mkdir flodr #创建目录rm -r flodr #删除文件/目录,有提示rm -rf flodr #删除文件/目录,无提示pwd #查看当前路径 防火墙设置 ht ...
- iOS.redefinition-of-struct-x
Error: Redefinition of struct x Reference
- Python调用Linux bash命令
import subprocess as sup # 以下注释很多(为了自己以后不忘), 如果只是想在python中执行Linux命令, 看前5行就够了 # 3.5版本之后官方推荐使用sup.run ...
- HTML-CSS背景渐进色
一.分类 a>线性渐变:颜色沿着一条直线过度:从 左到右.从上到下等: b>径向渐变:圆形或椭圆形渐变,颜色不再沿着一条直线变化,而是从一个起点朝所有方向混合. 1.线性渐变语法: bac ...
- cnblog测试
文字测试 图片测试
- weblogic中配置数据源
Weblogic数据源配置 一.配置数据源 1.点击数据源,进入数据源配置页面,点击新建后选择一般数据源 2.输入名称和jndi名称(两个输入一样即可)后点击下一步 3.选择驱动后点击下一步 4.输入 ...
- AX_CreateAndPostInventJournal
static void CreateAndPostInventJournal(Args _args) { InventJournalTable inventJournalTableLocal; Inv ...
- sui.js和workflow2.js内容详解
一. 二. var config=$("div[name=lwnf]").sui().getConfig()~var config = this.zoo.getConfig();等 ...
- 【Python】【BugList13】req = requests.get(url=target)报错: (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)')
[代码] # -*- coding:UTF-8 -*- import requests if __name__ == '__main__': target = 'https://unsplash.co ...