Java学习之子类与父类实例化问题~

一个子类继承父类,将继承父类所有的public属性及方法。并且当我们在测试方法中(main),对子类进行实例化的时候,我们通常有以下操作。

Java学习之子类与父类实例化问题~

上图中,GoodPeople是People类的子类,并且重写了classification方法,注意,这里的@override声明一定要加上,这个在阿里java规范里,是强制要求的,这样更加严格一些。有了规范尽量严格遵守,即使是很小的程序。

在main方法中,对第一句话的解读就是:

我们声明一个People类型的对象引用,这个引用(指针)最终指向的是我们实例化的一个GoodPeople的堆内存空间。

所以第三行中,当我们调用子类的showThis()方法的时候,我们需要进行一部强制类型转化的操作。也就是向下转型操作。所以这样问题就迎刃而解啦~。

突然想到一个例子比方我们这样做:

Object obj = new String("goodPeople");

(String)obj.toLowerCase();

其道理也是一样的,我们也需要将其转化为子类类型的指针,但指向的内存空间是相同滴。希望可以帮到大家~。

另外补充一下,我注释的那个地方。

以前在复写子类的时候,IDE会自动打上super.父类方法。一直觉着这句话好像仅仅是声明一下,并不会有实际的意义。但如果声明这句话,还是会执行的,执行的结果就是打印出父类方法中所进行的操作哦~。所以初学java的童鞋注意一下哈。希望可以帮到你~。