【Java】多态课后动手动脑

1.

1. 左边的程序运行结果是什么?

2. 你如何解释会得到这样的输出?

3. 计算机是不会出错的,之所以得 到这样的运行结果也是有原因的, 那么从这些运行结果中,你能总 结出Java的哪些语法特性?

当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。 这个特性实际上就是面向对象“多态”特性的具体表现。

如果子类与父类有相同的字段,则子类中的字段会代替或隐藏父类的字段,子类方法中访问的是子类中的字段(而不是父类中的字段)。如果子类方法确实想访问父类中被隐藏的同名字段,可以用super关键字来访问它。 如果子类被当作父类使用,则通过子类访问的字段是父类的!

2.用多态的方法模拟ATM操作流程。

结果:

时间: 2024-10-16 20:14:35

【Java】多态课后动手动脑的相关文章

【Java】课后动手动脑 类与对象

1.代码及实验结果 当"=="施加于原始数据类型变量时,是比较变量所保存的数据是否相等 当"=="施加于引用类型变量时,是比较这两个变量是否引用同一对象. 引用代表地址,所以"=="实际上相当于比较两个引用类型变量中保存的对象地址是否相同. 2.代码及实验结果 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法. 3.代码及实验结果 Java字段初始化的规律:按照顺序初始化,如果有多个方法对字段初始化,将按照最后一次初始化输出. 4

【Java】课后动手动脑及递归递推的应用

1.代码 表示方法为静态方法,在其它类中可以直接通过类名去调用这个方法! 例如public static void main(String[] args){ClassName.prt("abc");}如果不加static,则只有通过该类的对象去调用.例如public static void main(String[] args){ClassName name=new ClassName();name.prt("abc");} 2.线性同余纯随机数生成器 3.代码 4

JAVA语法基础 动手动脑及课后作业

动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t);  // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //

JAVA 数组作业——动手动脑以及课后实验性问题

JAVA课后作业——动手动脑 一:阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 1.源代码 // PassArray.java // Passing arrays and individual array elements to methods //引用传递和按值传递 public class PassArray { public static void main(String[] args) { int a[] = { 1,

java学习——关于java课件上动手动脑问题简单的分析

问题一:关于以下的代码为什么会产生错误的问题的简单分析. 第一个动手动脑提供了一下的代码,可以发现,在Foo的这个类中只定义了一个Foo(int)类型的构造函数,在之前的学习工程中,我们并没有接触到java的构造函数的声明过程,因此,在类中没有书写构造函数的方法的时候,编译器默认继承Object类,并在编译的时候会产生一个参数为空的构造函数,然而在定义的Foo这个类的时候,给予了一个Foo(int)类型的构造方法,所以在上述Test的调用过程中,obj1并不能够调用到new Foo()这个构造函

课后动手动脑

1.动手动脑:继承条件下的构造方法调用 首先执行超类的构造方法,然后显示子类的构造方法. 当修改代码后,执行结果变为: 依旧会先执行超类的构造方法,然后执行字类的相对应的构造方法. 思索: 由于子类是继承父类中的属性的,而父类中的属性需要调用父类的构造方法进行初始化,所以每次新定义一个子类的对象时,都需要调用一次父类的构造函数.所以不能将这个过程反过来,因为继承是顺序继承,不可逆. 2.探索技术的奥秘 首先,haha.a是对象类的名字,haha是包的名字,a是类的名字,@后...这些是开辟的新地

Java(多态)动手动脑

1> 请看以下"变态"的类(参看示例ParentChildTest.java) 上述代码的特点是: 子类和父类定义了一模一样的字段和方法 运行以下测试代码 1. 上边的程序运行结果是什么? 2. 你如何解释会得到这样的输出? 第一个100:是parent调用PrintValue方法输出parent类中myValue值为100: 第二个200:是child调用PrintValue方法输出child类中myValue值为200: 第三个200:是parent = child,将子类对

【Java】数组及课后动手动脑

1.阅读QiPan.java示例程序了解如何利用二维数组和循环语句绘制五子棋盘. 结果及截图: 2.请编写一个程序将一个整数转换为汉字读法字符串.比如"1123"转换为"一千一百二十三". 结果截图: 3.更进一步,能否将数字表示的金额改为"汉字表达? 比如将"¥123.52"转换为"壹佰贰拾叁元伍角贰分". 结果截图: 4. 前面几讲介绍过JDK所提供的BigInteger能完成大数计算,如果不用它,直接使用数组表

【Java】凯撒加密及课后动手动脑

1.代码及运行结果 在Java中,内容相同的字串常量("Hello")只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. 编译器在编译s2一句时,会去掉"+"号,直接把两个字串连接起来得一个字串("Hello").这种优化工作由Java编译器自动完成. 当直接使用new关键字创建字符串对象时,虽然值一致(都是"Hello"),但仍然是两个独立的对象. 2.代码及运行结果 给字串变量赋值意味着:两个变量(s1,