java的继承练习

1.子类继承父类的成员变量

   当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:

   1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;

   2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

   3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类      中访问父类中同名成员变量,需要使用super关键字来进行引用。

  2.子类继承父类的方法

   同样地,子类也并不是完全继承父类的所有方法。

   1)能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;

   2)对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

   3)对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问        父类中同名成员方法,需要使用super关键字来进行引用。

  


<ol><li><span style="font-family: Arial, Helvetica, sans-serif;">//化妆品管理应用(继承)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">import java.util.Arrays;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">public class test_1</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public static void main(String[] args)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		/*</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		CosmeticManager cm = new CosmeticManager();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.add(new Cosmetic("香奈儿",800.0f));</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.add(new Cosmetic("大宝",12.0f));</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.add(new Cosmetic("郁美净",2.0f));</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.add(new Cosmetic("玉兰油",100.0f));</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.printInfo();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		*/</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		SortCometicManager cm = new SortCometicManager();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.add(new Cosmetic("香奈儿",800.0f,"进口"));</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.add(new Cosmetic("大宝",12.0f,"国产"));</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.add(new Cosmetic("郁美净",2.0f,"国产"));</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.add(new Cosmetic("玉兰油",100.0f,"进口"));</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cm.printInfo();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">}</span></li><li>
</li><li><span style="font-family: Arial, Helvetica, sans-serif;">//只输出进口化妆品</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">class ImportCosmeticManager extends CosmeticManager</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public void printInfo()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">}</span></li><li>
</li><li>
</li><li>
</li><li>
</li><li><span style="font-family: Arial, Helvetica, sans-serif;">// 可按单价排序</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">class SortCometicManager extends CosmeticManager</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	//重写父类的打印方法实现排序</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public void printInfo()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		Cosmetic[] cs = new Cosmetic[super.count];</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		for(int i=0;i<cs.length;i++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			cs[i] = super.cosmetics[i];</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		Cosmetic temp = null;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		for(int i=0;i<cs.length-1;i++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			for(int j=0;j<cs.length-1-i;j++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">				if (cs[j].getPrice()>cs[j+1].getPrice())</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">				{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">					temp = cs[j];</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">					cs[j]=cs[j+1];</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">					cs[j+1]=temp;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">				}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		for(int i=0;i<cs.length;i++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">				System.out.println(cs[i].getInfo());</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">}</span></li><li>
</li><li>
</li><li>
</li><li><span style="font-family: Arial, Helvetica, sans-serif;">//化妆品管理类</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">class CosmeticManager</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	protected Cosmetic[] cosmetics = new Cosmetic[3];</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	protected int count = 0;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	//化妆品进货</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public void add (Cosmetic c)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		if (count >= cosmetics.length)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			int newLen = cosmetics.length *3/2+1;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			cosmetics = Arrays.copyOf(cosmetics,newLen);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		cosmetics[count] = c;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		count++;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	//输出所有化妆品</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public void printInfo()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		for (int i=0;i</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		<count;i++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">			System.out.println(cosmetics[i].getInfo());</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">}</span></li><li>
</li><li><span style="font-family: Arial, Helvetica, sans-serif;">// 化妆品类</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">class Cosmetic</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	private String name;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	private float price;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	private String type;//国产或进口</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public Cosmetic(){};</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public Cosmetic(String name,float price,String type)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		this.name = name;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		this.price = price;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		this.type = type;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public void setName(String name)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		this.name= name;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public String getName()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		return name;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public void setPrice(float price)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		this.price = price;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public float getPrice()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		return price;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public void setType(String type)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		this.type= typr;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public String getType()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		return type;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	public String getInfo()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">		return "化妆品名称:"+ name+"单价为:"+ price+"类型为:"+type;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">	}</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">}</span></li></ol>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值