java的继承练习

来源:互联网 发布:windows模拟器 安卓 编辑:程序博客网 时间:2024/05/17 01:52

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>




0 0