思维导图有
使用super关键字
子类可以继承父类的非私有成员变量和成员方法(不是以private关键字修饰的)作为自己的成员变量和成员方法。但是,如果子类中声明的成员变量与父类的成员变量同名,则子类不能继承父类的成员变量,此时称子类的成员变量隐藏了父类的成员变量。如果子类中声明的成员方法与父类的成员方法同名,并且方法的返回值及参数个数和类型也相同,则子类不能继承父类的成员方法,此时称子类的成员方法重写了父类的成员方法。这时,如果想在子类中访问父类中被子类隐藏的成员方法或变量,就可以使用super关键字。
1.调用父类的构造方法
子类可以调用由父类声明的构造方法。但是必须在子类的构造方法中使用super关键字来调用。语法格式如下:
super([参数列表]);
如果父类的构造方法中包含参数,则参数列表为必选项,用于指定父类构造方法的入口参数。
2.操作被隐藏的成员变量和被重写的成员方法
如果想在子类中操作父类中被隐藏的成员变量和被重写的成员方法,也可以使用super关键字。语法格式如下:
super.成员变量名
super.成员方法名([参数列表])

package org.hanqi.pn0120; public class Son extends Father { //Object a;所有类的父类 public Son() { //super表示父类。super在最前面 super("儿子"); System.out.println("子类的构造方法"); } public void sing() { System.out.println("我喜欢唱歌"); } //覆盖(重写) public void work() { //调用父类的方法 //super.work(); //System.out.println("我不喜欢上班,我要去参加海选"); System.out.println("我边上班边练歌"); }
转型
1.向上转型
子类转成父类:
①不能调用子类的特有的成员
②可以调用父类的成员
③如果被子类重写了,就调用子类的方法
2.向下转型
父类转成子类:
①需要强制转换(子类的类型)
②一般是先有向上转型,再有向下转型
常用方式:
先向上转成Object,再向下转型
类似泛型

//转型 //向上转型==>子转父 Father f1=new Son(); System.out.println("名字是:"+s.getName()); f1.work();//显示子类的work,如果被重写,调用子类方法, //f1.sing 转型后会损失子类特有的方法 //向下转型==>父转子 System.out.println("这是向下转型"); //Son s1=(Son) new Father(""); Son s1=(Son)f1;//向下转型前,必须要有一个向上转型作为前提条件 s1.work(); System.out.println(); Father f2=(Father)Son.getData(1); f2.work();