7-面向对象程序设计进阶

7-面向对象程序设计进阶

ID:5388859

大小:145.92 KB

页数:28页

时间:2017-12-08

7-面向对象程序设计进阶_第1页
7-面向对象程序设计进阶_第2页
7-面向对象程序设计进阶_第3页
7-面向对象程序设计进阶_第4页
7-面向对象程序设计进阶_第5页
资源描述:

《7-面向对象程序设计进阶》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、面向对象程序设计(上)•类的继承•访问控制•方法覆盖•super关键字•this关键字类的继承•面向对象最重要的特点之一,就是可以实现对类的复用•通过“继承”一个现有的类,可以使用已经定义的类中的方法和变量•类的方法可以被继承,但是类的构造器不能被继承狗颜色叫哈巴狗蝴蝶狗颜色颜色叫叫跳舞接电话类的继承(con.)•类继承的基本语法:–class[extends]–{–*–}•在Java中,一个类只能继承继承一个父类,这

2、种方式叫做单继承。这一点和C++不一样。类的继承(con.)•java.lang.Object类是所有类的父类•虽然一个类只可以继承一个父类,但是一个父类却可以被多个子类所继承。•从子类的角度看,它是“继承(extends)”父类;而从父类的角度看,它是“派生(derive)”子类。它们指的都是同一个动作,只是角度不同而已。类的继承例子(6-1)•类的继承例子:publicclassAnimal{privateintweight;publicintgetWeight(){returnweight;}

3、publicvoidsetWeight(intw){weight=w;}}类的继承例子(con.)publicclassDogextendsAnimal{/***子类新增方法*/publicvoidBark(){System.out.println("Wang~~Wang~~~");}}类的继承例子(con.)publicclassMyDog{privatestaticDogmyDog;publicstaticvoidmain(Stringargs[]){myDog=newDog();myDog.s

4、etWeight(50);System.out.println("MyDog'sWeightis"+myDog.getWeight());myDog.Bark();}}继承的使用规则可以继承的:属性、方法、内部类,具体那些能继承要看修饰符•不可继承的:构造方法•1.继承过来的属性可以直接使用,和自己类的其他属性一样使用•2.子类中的属性名字可以和父类中被继承过来的属性名字相同,这时父类属性被覆盖•3.被继承过来的方法也可以直接使用•4.可新增属性和方法访问控制•在Java中,可以在类、类的属性以及类

5、的方法前面加上一个修饰符(modifier),来对类进行一些访问上的控制。修饰符同一个类中同一个包中子类中全局privateYesYesYesprotectedYesYesYespublicYesYesYesYes访问控制(con.)•访问控制的限制程度从高到低如下图所示。注意,Default不是一个修饰符,它只是用来表示一种不加任何修饰符时的状态。privateDefaultprotectedpublicpublicclassStudent{publicinta;privateStringb;do

6、ublec;publicvoidfun1(){}privatevoidfun1(){}voidfun1(){}}方法的重写(override)•当子类继承符类时,可以从父类继承它的属性和方法•如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的重写(override)•当对父类的方法进行覆盖时,子类中的方法必须和父类中对应的方法具有相同的方法名称、输入参数和返回值•子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限方法的覆盖例子(案例6-2)publicclassPer

7、son{Stringname;intage;Stringsex;publicStringshowName(){returnname;}……}方法的覆盖例子(con.)publicclassTeacherextendsPerson{privateStringdepartment;publicvoidsetDepartment(Stringdept){department=dept;}publicStringgetDepartment(){returndepartment;}//方法覆盖publicSt

8、ringshowName(){returnname+"老师";}……}super关键字•在Java类中使用super来引用父类的成分–super可用于访问父类中定义的属性•重载–super.age;–super可用于调用父类中定义的成员方法–super.setAge(22);–super可用于在子类构造器中调用父类的构造方法–super的追溯不仅于直接父类调用父类构造方法调用父类构造方法((66--33))•创建子类对象时的构造顺序•在子类的构造器中可使用语句supe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。