继承和多态中动手动脑

当子类对象和父类对象调用同名的方法的时候,只看这个对象是子类还是父类,调用他最真实的类中的方法。

这个是println调用的方法的不同,实际上他调用了内部的String类的valueOf方法,又接着调用了valueOf内部方法Object.toString   所导致的

这也验证了调用的是内部的toString方法从而实现调用类里边的函数。

原文地址:https://www.cnblogs.com/0518liu/p/9949645.html

时间: 2024-11-09 02:52:38

继承和多态中动手动脑的相关文章

继承与多态,动手动脑

1.怎样判断对象是否可以转换? 答:可以使用instanceof运算符判断一个对象是否可以转换为指定的类型:实例: public class TestInstanceof { public static void main(String[] args) { //声明hello时使用Object类,则hello的编译类型是Object,Object是所有类的父类 //但hello变量的实际类型是String Object hello = "Hello"; //String是Object类

继承和多态的动手动脑

1.怎样判断对象是否可以转换? 可以使用instanceof运算符判断一个对象是否可以转换为指定的类型. 例: 1 public class TestInstanceof 2 { 3 public static void main(String[] args) 4 { 5 //声明hello时使用Object类,则hello的编译类型是Object,Object是所有类的父类 6 //但hello变量的实际类型是String 7 Object hello = "Hello"; 8 //

课堂(继承与多态)动手动脑

01.怎样判断对象是否可以转换? 答:可以使用instanceof运算符判断一个对象是否可以转换为指定的类型 02. 现在有三个类: class Mammal{} class Dog extends Mammal {} class Cat extends Mammal{} 针对每个类定义三个变量并进行初始化 Mammal m=null ; Dog d=new Dog(); Cat c=new Cat(); 下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m;

JAVA中动手动脑

第一个动手动脑: 首先用枚举类型定义两个变量,然后判断两个变量是否引用同一对象,在判断枚举类型是否是原始数据类型,再从字符串中转换,最后列出所有的对象. 很明显,这两个变量都是枚举类型,但是这两个变量引用的对象不一样,同样,枚举类型并不是原始数据类型. 得出的结论就是,同是枚举类型,但是引用的对象可以不同,枚举类型并不是原始数据类型. 我可能还是用不好枚举类型. 第二个动手动脑: 很明显,+a+b,只不过是先显示a再显示b, 而a+b+“  .. ”,就是先把a+b的结果显示出去,然后再加上要显

课程作业09:继承与多态课件中动手动脑的相关问题。

1. 为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 构造方法在创建对象时被调用,用来初始化新对象,即为对象成员变量赋初值.子类要继承父类的成员变量和方法,如果不调用父类的构造方法,那么父类的成员变量和成员方法无法在子类创建对象时正确初始化.反过来调用不可以,因为父类不知道子类有什么变量,这样子类也得不到初始化的父类变量.   2.请自行编写代码测试以下特性,在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. package practic

多态(动手动脑)

1.可以使用instanceof运算符判断一个对象是否可以转换为指定的类型:  Object obj="Hello";  if(obj instanceof String)  System.out.println("obj对象可以被转换为字符串"); 程序代码: package demo; public class TestInstanceof { public static void main(String[] args){  Object hello="

Java(多态)动手动脑

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

【Java】多态课后动手动脑

1. 1. 左边的程序运行结果是什么? 2. 你如何解释会得到这样的输出? 3. 计算机是不会出错的,之所以得 到这样的运行结果也是有原因的, 那么从这些运行结果中,你能总 结出Java的哪些语法特性? 当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的"真实"类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法. 这个特性实际上就是面向对象"多态"特性的具体表现. 如果子类与父类

06-继承与多态(动手动脑与验证)

一.继承条件下构造方法的调用 测试代码一: 1 class Grandparent 2 { 3 public Grandparent() 4 { 5 System.out.println("GrandParent Created."); 6 } 7 public Grandparent(String string) 8 { 9 System.out.println("GrandParent Created.String:" + string); 10 } 11 }