JavaJDK6学习笔记-ppt简体版第08章.ppt
《JavaJDK6学习笔记-ppt简体版第08章.ppt》由会员分享,可在线阅读,更多相关《JavaJDK6学习笔记-ppt简体版第08章.ppt(40页珍藏版)》请在三一办公上搜索。
1、第8章,继承、多型继承多型,扩充(extends)父类别,使用extends作为其扩充父类别的关键词,public class Bird private String name;public Bird()public Bird(String name)this.name=name;public void walk()System.out.println(走路);public String getName()return name;public void setName(String name)this.name=name;,扩充(extends)父类别,public class Chicken
2、extends Bird/扩充Bird类别 private String crest;/新增私有成员,鸡冠描述 public Chicken()super();/定义建构方法 public Chicken(String name,String crest)super(name);this.crest=crest;/新增方法 public void setCrest(String crest)this.crest=crest;public String getCrest()return crest;public void wu()System.out.println(咕咕叫);,扩充(exten
3、ds)父类别,Chicken chicken1=new Chicken(小克,红色小鸡冠);Chicken chicken2=new Chicken();System.out.printf(小雞1-名称%s,鸡冠是%s。n,chicken1.getName(),chicken1.getCrest();chicken1.wu();System.out.printf(小雞2-名称%s,鸡冠是%s。n,chicken2.getName(),chicken2.getCrest();chicken2.wu();,被保护的(protected)成员,保护意思表示存取该成员是有条件限制的继承的类别就可以直接
4、使用这些成员,但这些成员仍然受到保护不同套件(package)的对象不可直接呼叫使用protected成员,被保护的(protected)成员,public class Rectangle/受保护的member protected int x;protected int y;protected int width;protected int height;,public class CubicextendsRectangle public int getVolumn()/可以直接使用父类别中的width、height成员 return length*width*height;,重新定义(Ove
5、rride)方法,如果父类别中的定义并不符合您的需求,可以在扩充类别的同时重新定义可以重新定义方法的实作内容、成员的访问权限,或是成员的返回值型态,重新定义(Override)方法,public class SimpleArray protected int array;public SimpleArray(int i)array=new inti;public void setElement(int i,int data)arrayi=data;.,public class SafeArrayextends SimpleArray/重新定义setElement()public void se
6、tElement(int i,int data)if(i array.length)super.setElement(i,data);.,重新定义(Override)方法,SimpleArray simpleArray=new SafeArray();simpleArray.setElement();,实际运作的对象是SafeArray的实例,所以被呼叫执行的会是SafeArray中重新定义过的setElement()方法,重新定义(Override)方法,在衍生类别中想要呼叫基类的建构方法,可以使用super()方法要在衍生类别中呼叫基类方法,则可以如使用super.methodName()
7、条件限制父类别中的方法或建构方法不能是private,也就是不能是私用成员,重新定义(Override)方法,您可以增大父类别中的方法权限,但不可以缩小父类别的方法权限若原来成员是public的话,您不可以在父类别中重新定义它为private或protected,public class SafeArray extends SimpleArray/不可以缩小父类别中同名方法的权限 private void setElement(int i,int data).,setElement(int,int)in SafeArray cannot override setElement(int,in t
8、)in SimpleArray;attempting to assign weaker accessprivileges;was publicprivate void setElement(int i,int data)1 error,重新定义(Override)方法,从J2SE5.0开始在重新定义方法时,您可以重新定义返回值的型态,public class Bird protected String name;public Bird(String name)this.name=name;public Bird getCopied return new Bird(name);,重新定义(Ove
9、rride)方法,public class Chicken extends Bird protected String crest;public Chicken(String name,String crest)super(name);this.crest=crest;/重新定义返回值型态为Chicken publicChicken getCopied()return new Chicken(name,crest);,重新定义的返回值型态必须是父类别中同一方法返回型态的子类别无法重新定义static方法,Object类别,Object是Java程序中所有类别的父类别每个类别都直接或间接继承自O
10、bject类别,public class Foo/实作,public class Foo extends Object/实作,toString()、equals()、hashCode(),toString()方法是对对象的文字描述Object的toString()预设会传回类别名称及16进位制的编码预设的equals()本身是比较对象的内存地址是否相同,getClass().getName()+Integer.toHexString(hashCode(),toString()、equals()、hashCode(),可以重新定义equals()方法,以定义您自己的对象在什么条件下可视为相等的对
11、象在重新定义equals()方法时,建议同时重新定义hashCode()方法,toString()、equals()、hashCode(),public boolean equals(Object other)if(this=other)return true;if(!(other instanceof Cat)return false;final Cat cat=(Cat)other;if(!getName().equals(cat.getName()return false;if(!getBirthday().equals(cat.getBirthday()return false;ret
12、urn true;public int hashCode()int result=getName().hashCode();result=29*result+getBirthday().hashCode();return result;,clone()方法,如何复制对象本身最基本的作法:实作界面(Interface),public class PointimplementsCloneable/要实作Cloneable public Object clone()throws CloneNotSupportedException/呼叫父类别的clone()来进行复制 return super.cl
13、one();,clone()方法,public class TableimplementsCloneable/要实作Cloneable private Point center;/public Object clone()throws CloneNotSupportedException/呼叫父类的clone()来复制 Table table=(Table)super.clone();if(this.center!=null)/复制Point类型的数据成员 table.center=(Point)center.clone();return table;,clone()方法,Table tabl
14、e=new Table();table.setCenter(new Point(2,3);Point originalCenter=table.getCenter();Table clonedTable=(Table)table.clone();Point clonedCenter=clonedTable.getCenter();System.out.printf(原来的Table中心:(%d,%d)n,originalCenter.getX(),originalCenter.getY();System.out.printf(复制的Table中心:(%d,%d)n,clonedCenter.g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaJDK6 学习 笔记 ppt 简体版 08
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6509345.html