java子类继承父类实例_Java子类继承父类详解
别和我说你真的懂了继承,先来看下面的代码,回答出我的问题再说
代码很简单,如下:
父类:
public class T {
public void run()
{
System.out.println("T can run");
}
public static void main(String args[])
{
T t = new SubT();
t.run();
t.fly();
SubT subT = (SubT)t;
subT.run();
subT.fly();
}
}
子类:
public class SubT extends T{
public void run()
{
System.out.println("SubT can run too");
}
public void fly()
{
System.out.println("SubT can fly");
}
}
首先,上述代码可以正常编译乃至运行吗?
其次,能够执行其结果是?不能编译或执行的原因在哪个地方?
上面这个例子是很典型的子类继承父类并重写run方法,添加了新的fly方法,而调用的时候去声明一个父类引用去指向一个子类对象
首先,上述代码是无法编译通过的,因为一个父类的引用无法去调用子类独有的方法或者被子类复写后的方法,故t.fly()这个调用时违法的
好的,那么我们把这句注释掉,输出结果是什么呢?
SubT can run too
SubT can run too
SubT can fly
从上述结果可以看出,当一个父类引用指向了一个子类的对象时,调用的方法为子类复写后的方法,而非父类方法,正式这一特性大大地拓展了java的多态性
附一个讲的比较详细的链接:父类引用指向子类对象
java子类继承父类实例_Java子类继承父类详解相关推荐
- java file 实例_Java File类的详解及简单实例
Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象. CanWrite():返回文件是否可写. CanRead():返回文件是否可读. Co ...
- java编程数据溢出问题_Java数据溢出代码详解
Java数据溢出代码详解 发布时间:2020-10-05 15:08:31 来源:脚本之家 阅读:103 作者:Pony小马 java是一门相对安全的语言,那么数据溢出时它是如何处理的呢? 看一段代码 ...
- java和c++的区别_JAVA和C++区别详解
JAVA和C++区别详解 来源:-- 作者:-- 浏览:811 时间:2016-08-10 14:18 标签: 摘要: 1)java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然 ...
- Java中继承toString方法_java中toString方法详解
1.Object类中定义有toString方法,用于返回对象的字符串表示(一个可以表示该对象属性内容的字符串),返回的字符串形式为 "类名@hashCode值".下面看Object ...
- 异常将上下文初始化事件发送到类的侦听器实例._Java CLassLoader类加载器详解,一点课堂(多岸学院)...
Java CLassLoader 类加载器(class loader)是 Java™中的一个很重要的概念.类加载器负责加载 Java 类的字节代码到 Java 虚拟机中.本文首先详细介绍了 Java ...
- java中的工厂模式_java中工厂模式详解和使用方法
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...
- java input函数怎么用_Java函数习惯用法详解
在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的.在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法. 我把本文的所有代码都放在公共场所里.你可以根据自己的喜 ...
- java二分排序法原理_Java常见排序算法详解—— 二分插入排序
转载请注明出处: 二分插入排序Binary Insert Sort 概念: 二分(折半)插入排序是一种在直接插入排序算法上进行小改动的排序算法.其与直接排序算法最大的区别在于查找插入位置时使用的是二分 ...
- java 子类 父类 转换_Java子类与父类之间的类型转换
1.向上转换 父类的引用变量指向子类变量时,子类对象向父类对象向上转换.从子类向父类的转换不需要什么限制,只需直接蒋子类实例赋值给父类变量即可,这也是Java中多态的实现机制. 2.向下转换 在父类变 ...
最新文章
- Django模型 Q对象实现复杂查找
- Bitcoin代码中的Boost signals(1)
- 一次从节点同步出错的解决
- 25.智能指针.rs
- 华为智能手环智能手表软件测试,一块智能手表的测试之旅,揭秘华为运动健康科学实验室...
- 美的集团2022全球招聘正式启动
- (69)Vue-cli 打包与部署
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(4)――任务间通信A
- iOS---实现在屏幕上实时绘图的简单效果---CAShaperLayer和UIBezierPath的简单运用
- sourceMap到底是个啥玩意?
- 几何画板是哪方面的计算机应用,几何画板最新版
- Android模拟器不支持蓝牙
- Linux入门居然只要会看就行!!!
- 八大排序算法--堆排序
- 如何更新Nintendo Switch游戏
- 密码学读书笔记系列(三):《商用密码应用与安全性评估》
- 两个主要问题将决定微信支付成败
- c语言实验报告 折半查找法,C语言数组之冒泡排序+折半查找法(二分查找)
- 我的AI之路(54)--使用Pytorch内置的动作识别模型
- 黑帽SEO技巧揭秘:PBN是什么?还可以用来建设外链吗?
热门文章
- centos7mimi mysql 安装_CENTOS 6.0 mini系统编译安装mysql 5.5.16过程
- C#绘制手提袋效果和光盘效果
- 低电压检测类型的电压检测器IC能否用作过电压检测使用?
- 深入浅出讲解Optional包装类
- Spring Boot-2.3.7.RELEASE整合activiti-6.0示例步骤
- 几周的紧张的考试后的感想
- ubuntu android 加入so文件,Ubuntu下Android NDK配置及生成so文件步骤
- 微信公众号写文章并发布
- Lwip之TCP协议实现(二)
- 为什么大家都买卡地亚蒂芙尼_你知道为什么卡地亚比蒂芙尼贵!