------- android培训、java培训、期待与您交流! ----------
/*以下均为本人按理解手打。仅代表个人观点,如果有错误请联系我加以改成。谢谢!无任何拷贝,摘抄等行为,转载请注明地址*/
class personal
{
String name="2222";
int age;
}
class student extends personal
{
String str="shaoyongyang";
int num=99;
void ShowSelf(String str,int num)
{
this.str = str;
this.num = num;
System.out.println("class:student " + "str: " + str + "age: " + age );
}
void ShowSuperFather()
{
super.name = this.str;
super.age = this.num;
System.out.println(super.name + " " + super.age); //输出personal内中的成员变量,是否可以赋值?
}
}
class teacher extends student //最高级子类
{
teacher(String str,int num)
{
super.str = str;
super.num = num; //看一下这两个父类成员变量是否personal类成员变量
System.out.println("Father~~~str:" + super.str + "\tage:" + super.num);
}
}
class day072
{
public static void main(String[] args)
{
teacher tr = new teacher("便便",15);
}
}
程序运行结果为:
D:\JAVA>java day072
Father~~~str:便便 age:15
D:\JAVA>
代码简单概述:
personal为最基类。也就是最底层类。student为基类并且继承与personal类。teacher类为顶级类。并且student、teacher都继承与personal类,拥有该类的所有成员变量和成员函数。
student类和personal类并相同定义了两个成员变量,一个进行初始化操作一个为进行初始化操作。这里我为了进行super能访问到父类进行的实验。
实验结论:
1、当最高级类使用多层继承时。成员变量名称一样的时候,使用super关键字默认访问的是父类成员变量,并非是最低继承类。
2、当父类子类,子子类成员变量名称不一样的时候,使用super即可以访问最子类成员变量又可以访问父类成员变量。
注解:
按类的关系继承时,我理解为如:personal类,Worker类,Police三个类,Worker类继承personal类,Police类继承Worker类。那么personal就是最底层类,中层类是Worker,Police便是高级类。一次类推。就跟金字塔一样,高层继承底层。