黑马程序员-----面向对象之代码分析1

------- 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便是高级类。一次类推。就跟金字塔一样,高层继承底层。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值