《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 Chickene
2、xtends 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(咕咕叫);扩充(extend
3、s)父类别 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;重
5、新定义(Override)方法如果父类别中的定义并不符合您的需求,可以在扩充类别的同时重新定义可以重新定义方法的实作内容、成员的访问权限,或是成员的返回值型态重新定义(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
6、 void setElement(int i,int data)if(i number)showMessage(输入的数字较大输入的数字较大);else if(guess number)showMessage(输入的数字较小输入的数字较小);else showMessage(猜中了猜中了);while(guess!=number);protectedabstractvoid showMessage(String message);protectedabstract int getUserInput();抽象类应用public class TextModeGameextends Abstract
7、GuessGame private Scanner scanner;public TextModeGame()scanner=new Scanner(System.in);protected void showMessage(String message)for(int i=0;i message.length()*2;i+)System.out.print(*);System.out.println(n+message);for(int i=0;i message.length()*2;i+)System.out.print(*);protected int getUserInput()Sy
8、stem.out.print(n输入数字:);return scanner.nextInt();抽象类应用藉由在抽象类中先定义好程序的执行流程,并将某些相依方法留待子类别中执行 AbstractGuessGame guessGame=new TextModeGame();guessGame.setNumber(50);guessGame.start();界面(Interface)继承某抽象类的类别必定是该抽象类的一个子类实作某接口的类别并不被归属于哪一类一个对象上可以实作多个接口接口的宣告是使用interface关键词public interface接口名称 权限设定 传回型态 方法(参数列)
9、;权限设定 传回型态 方法(参数列);/.界面(Interface)在宣告接口时方法上的权限设定可以省略,如果省略的话,预设是publicpublic interface IRequest public void execute();界面(Interface)public class HelloRequestimplements IRequest private String name;public HelloRequest(String name)this.name=name;public void execute()System.out.printf(哈啰%s!%n,name);publi
10、c class WelcomeRequestimplements IRequest private String place;public WelcomeRequest(String place)this.place=place;public void execute()System.out.printf(欢迎来到%s!%n,place);界面(Interface)public static void main(String args)for(int i=0;i 10;i+)int n=(int)(Math.random()*10)%2;/随机产生 switch(n)case 0:doRequ
11、est(new HelloRequest(良葛格);break;case 1:doRequest(new WelcomeRequest(Wiki网站);public static voiddoRequest(IRequestrequest)request.execute();界面(Interface)在Java中您可以一次实作多个接口必要时必须作接口转换,如此程序才知道如何正确的操作对象public class类别名称implements界面1,界面2,界面3 /界面实作ISomeInterface1 obj1=(ISomeInterface1)someObject;obj1.doSomeMethodOfISomeInterface1();ISomeInterface2 obj2=(ISomeInterface2)someObject;obj2.doSomeMethodOfISomeInterface2();界面(Interface)接口也可以进行继承的动作,同样也是使用“extends”关键词来继承父接口一个接口可以同时继承多个父接口,实作子接口的类别必须将所有在父接口和子接口中定义的方法实作出来public interface名称extends界面1,界面2 /.
限制150内