一个编程小白的Java战役

一个编程小白的Java战役(15)

——太原理工大学机器人团队学习打卡day15

在类里面,我们有一个关键词—this,我们用它来表示当前对象里面的字段和方法。其实吧,还有一个关键词—super。

1、super的使用

super是我们在继承时常用的一个关键词,它可以用来访问父类的字段和方法。即其主要是用来访问父类的,当然也包括父类的父类。
一个编程小白的Java战役
注意:super和this实际上指的都是同一个对象,而不是两个。

好处:使用super和this可以区分域是在当前对象定义的还是在父类定义的。
一个编程小白的Java战役
很像中文里所谓的批判性继承—既修改又继承。

在一定意义上,构造方法是不能继承的,然而,我们可以在子类中使用super来调用父类中的构造方法。
一个编程小白的Java战役

2、父类对象与子类对象的转换

类似基本数据类型之间的强制类型转换,存在继承关系的父类对象和子类对象之间也可以在一定条件之下相互转换。
一个编程小白的Java战役
看着很复杂对吧,其实没有什么。就是在一定条件下,父类的引用或子类的引用可以相互转换。但是要注意,子类的对象可以被当做父类的对象,反之不成立!

给个类型转换的例子:
一个编程小白的Java战役
一个编程小白的Java战役
一个编程小白的Java战役
写到后面想起来,一个不带任何参数的构造方法不是默认构造方法,因为默认构造方法是系统自己产生的,大家要注意一下。

经过上面的例子,我们可以看出,父类对象与子类对象的强制类型转换也是在前面加括号和类型(与基本数据类型之间的强制类型转换没有区别)。当然,之前说父类的对象不能作为子类的对象,但是如果进行强制类型转换,编译是可以成立的,问题会出现在运行时,它是无法运行的。

3、今日小结

今天主要深入学习了继承中的一系列问题,作为最重要的知识,继承我们仍需细致研究。好了,今天就到这里吧,拜拜。