java声明一个父类A,java 子类强转父类 父类强转子类
1.基本数据类型
基本数据类型:
子类可以强转成父类,因为小范围可以强转大范围,不会有数据丢失。
父类也可以强转成子类,但是因为大范围强转成小范围,所以会有数据丢失。
2.Java 继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
Java 子类强转父类
父类引用指向子类对象:
java中子类强转父类,实际上依然是子类;
该引用只能调用父类中定义的方法和变量;
如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;
// A是父类,B是子类
A a = new A();
a.setName("a1");
a.sayA(); // sayA
B b = new B();
b.setName("b1");
b.setSex(true);
b.sayA(); // sayA from B
b.sayB(); // sayB
// Java中的对象进行类型提升,依然保持其原有的类型。
A a2 = (A) b; // 子类强转父类,其实仍然是子类
System.out.println(a2.toString()); // B [name=b1, age=0, sex=true]
// 该引用只能调用父类中定义的方法和变量;
// a2.sayB(); // The method sayB() is undefined for the type A 报错
// 如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;
a2.sayA(); // sayA from B a2其实是B,调用的是B方法
Java 父类强转子类
只有父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象.
// B b2 = (B) a; // atest.A cannot be cast to atest.B a是A,转不成B
// 只有父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象.
B b2 = (B) a2; // a2其实是B,可以转成B
System.out.println(b2.toString()); // B [name=b1, sex=true]
b2.sayA(); // sayA from B
b2.sayB(); // sayB
java声明一个父类A,java 子类强转父类 父类强转子类相关推荐
- 是否可以在Gradle中声明一个可用于Java的变量?
本文翻译自:Is it possible to declare a variable in Gradle usable in Java? Is it possible to declare a var ...
- 求十个学生的平均成绩java,JAVA 声明一个数组,存一个学生的五门成绩。求该学生的总成绩、平均成绩。...
JAVA 声明一个数组,存一个学生的五门成绩.求该学生的总成绩.平均成绩. mip版 关注:116 答案:3 悬赏:30 解决时间 2021-01-26 06:39 已解决 2021-01-25 ...
- 零基础学java web开发_从零基础学Java成为一个专业的java web 开发者
原标题:从零基础学Java成为一个专业的java web 开发者 "我怎么才能成为一个Java Web开发者?"对于这个问题,答案其实并不简单.成为一个Java Web开发人员包括 ...
- java 声明一个bus类_Java初级阶段测试附带答案
Java初级阶段测试3 一.选择题(每题2分,共50分) 1.整型数据类型中,需要内存空间最少的是() A) short B) long C) int D) byte 2.Java语言中() A) 一 ...
- int java 声明_怎样用java定义一个int数组 C++ 怎么声明一个整型数组?
导航:网站首页 > 怎样用java定义一个int数组 C++ 怎么声明一个整型数组? 怎样用java定义一个int数组 C++ 怎么声明一个整型数组? 相关问题: 匿名网友: int[] anA ...
- java 声明一个bus类_第11章 新特性 – 你应该更新的Java知识之Observer - Java 基础入门笔记...
作为一个Java程序员,不熟悉设计模式简直不好意思和人打招呼,而Observer模式可以说是位列最常用的设计模式之列,虽然有时候在具体代码里,它不一定叫这个名字,比如改头换面叫个Listener,但模 ...
- 用JAVA编写一个水果箱,Java SE 第四章类之间的关系--水果箱编程题
问题:有一个水果箱(Box),箱子里装有水果(Fruit),每一种水果都有不同的重量和颜色,水果有:苹果.梨.桔子.每个苹果(Apple)都有不同的重量和颜色,每个桔子(Orange)都有不同的重量和 ...
- java 分割一个_分割java
[java]分割字符串工具类,霸气 jdk自带的 java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij ...
- java声明是否是质数,java判断是否为素数(质数)的方法
质数的定义: 对于大于1的数,如果除了1和它本身,它不能再被其它正整数整除,那么我们说它是一个质数. 判断一个数是否为质数(素数)方法: 如果是偶数,直接返回:然后从3开始,步长为2,一直到n的算术平 ...
最新文章
- [你必须知道的.NET]第二十一回:认识全面的null
- HDU 2152 选课时间(题目已修改,注意读题) (母函数)
- ASP.NET 安全认证(三)—— 用Form 表单认证实现单点登录(Single Sign On) .
- 部门选择控件源代码公布
- SQL Server数据库设置自动备份策略
- 解决Ubuntu系统中文乱码显示问题
- 如何在JavaServer Pages中使用Salesforce REST API
- I_LIKE_CPP 多特游戏下载
- Windows运行命令收集
- pytorch torch.randn
- cuda 图片拆分_急需,PDF怎么拆分啊?
- cad高程测绘图lisp_CAD地形图高程信息快速提取的技术与实现
- hyper-v虚拟机驱动_如何在Hyper-V虚拟机中访问本地和USB硬盘驱动器
- 京东联盟API接口-京东订单查询接口-实时掌握订单情况
- 终于把AI换脸的原理搞清了
- docker android模拟器,Docker中的Android模拟器
- UC手机浏览器js加入收藏夹
- ppt矩形里面的图片怎么放大缩小_PPT中图片点击放大效果的实现
- 手机连不上电脑WIFI并且一直提示正在获取IP地址
- 显示当前数据库服务器的ip,怎么查看服务器数据库的ip地址