继承 计算机基础_第1页
继承 计算机基础_第2页
继承 计算机基础_第3页
继承 计算机基础_第4页
继承 计算机基础_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

继承

•继承

•数据隐藏

•方法重写

•super关键字的使用

•访问修饰符

•包的使用

HandsOn

继承的优点

HandsOn

继承

Java当中,Java的所有类都有是直接或间接地继承

Object类。被继承的类称为父类,继承而得到的类称

为子类

•类的继承是通过在类的定义过程中,用关键字extends

来说明.一次只能继承一个类,即单重继承。

•格式:

[修饰符]class类的名字extends父类{}

•子类继承父类后

>可继承和访问父类中公共类型和保护类型的成员变量或方法

>不能继承和访问被声明为私有类型的成员变量或方法

•子类可以添加属于自己的新的变量和方法,这叫扩展。

•子类可修改父类的变量或重写父类的方法,这叫重写。

HandsOn

继承的实现

1.classEmployee(

2.Stringname;

3.floatsalary=2000f;

4.publicfloatgetSalary(){

5.returnsalary;

6.}

7.}

8.classManagerextendsEmployee{

9.intbouns;

10.publicvoidsetBouns(intb){

11.bouns=b;

12.}

13.publicstaticvoidmain(String[]s){

14.Managerm=newManager();

15.m.setBouns(1000);

16.floatfs=m.getSalary()+m.bouns;

17.System.out.println(fs);

18.}

19.}

HandsOn

继承过程中的重写

•当子类的成员(数据/方法)与父类的同名(参

数完全一样)时,子类的会隐藏父类的成员

变量/成员方法,即发生了重写。

•重写规则:

必须发生在继承关系中

方法名,参数列表,返回类型完全一样

重写方法的访问性不能比被重写方法差

重写方法不能抛出更多或更广的异常

HandsOn

继承过程中的数据重写

1.classA{

2.intx=5;当在子类中定义了一个

3.)与父类完全一样的数据

4.classBextendsA{成员时,在子类中将隐臧

5.intx=10;

6.intgetX(){这个父类成员,即在子

7.returnx;类中缺省将不能访问这

8.)个父类成员

9.publicstaticvoidmain(String[]s){

10.Bb=newB();

11.b.getX();//?

12.)

13.}

HandsOn

继承过程中的方法重写

1.classA{

2.voidf(){System.out.println(uAf()”);}

3}

4.classBextendsA{

5.voidf(){

6.System.out.println(uBf()”);

7.}

8.publicstaticvoidmain(String[]s){

9.Bb=newB();

io.b.f();〃?

11.}

12.)

HandsOn

super关键字的使用

•解决隐藏与重写

子类在隐藏父类的成员变量或重写了父类的方

法以后,有时要访问被重写的方法或隐藏的成

员,Java提供super关键字来实现对父类的访

问,super位置不向定

•显示调用父类构造方法

super位置必须位于子类构造函数的第一

句的位置

HandsOn

super调用重写数据

1.classA{

2.intx=5;

3.}

4.classBextendsA{

5.intx=10;

6.intgetX(){

7.returnx+super.x;

8.}

9.publicstaticvoidmain(String[]s){

10.Bb=newB();

11.b.getX();//?

12.)

13.}

HandsOn

super调用重写方法

1.classA{

2.voidf(){System.out.println(uAf()”);}

3}

4.classBextendsA{

5.voidf(){

6.super.f();

7.System.out.println(uBf()”);

8.)

9.publicstaticvoidmain(String[]s){

10.Bb=newB();

11.b.f();//?

12.)

13.}

HandsOn

super在子类构造函数中的应

a

•子类构建对象时,会先调用父类的构造函

数,然后在调用自身构造函数

•2种情况:

1)父类存在无参构造函数

子类构造函数中super可以省略

2)父类不存在无参构造函数

子类必须手写构造函数,并且必须在

第一句话显式调用super(参数列表)

HandsOn

访问修饰符

•类

>public可以跨包使用

A缺省只允许在包中使用

•成员

>public

>protected

>缺省

>private

HandsOn

成员访问修饰符3-2

HandsOn

•包是类库的组成单元,Java的类库是由各种各样功能包组成的.

>Java安装目录jre\lib\rtjar就是java的类库

•类和接口是包的组成元素,编程人员可以把一组类和接口通过

package关键字封装在一个包中。从而实现了Java的命名空间。

•声明包

>在源文件的开始加上:package包名(要求全部小写)(反域名制)

>在编译时,加-d参数,指明包放的位置

•使用包中的类

>如使用不同包的类,必须加入import关键字

>引用的包必须在classpath环境变量中,如果不在,运行时要用-

classpath参数单独指定.

HandsOn

打包及编译■示例

1.packageedu.dhcc.j2se.parti0;

2.publicclassTest{

3.privateintm;

4.intn;

5.protectedintx;

6.publicinty;

7.}

javac-d编译后当前类所在根包存放的路径Test.java

HandsOn

使用包的类一示例

1.packageedu.dhcc.test;

2.importedu.dhcc.j2se.partiO.Test;

3.classUseTestlextendsTest{

4.UseTestl(){

5.y=30;

6.x=40;

7.〃m,n为什么在这里不能访问

8.)

9.}

10.publicclassUseTest{

11.publicstaticvoidmain(String[]s){

12.Testt=newTest();

13.t.y=30;

14.为什么在这里不能访问

15.}

16.}

HandsOn

编译及运行

•javac-d编译后包存放路径UseTestjava

>要求源文件中使用的包必须在classpath环境

变量中才可编译通过

•javaedu.dhcc.testUseTest

>要求运行的当前类及所使用类都在

classpath环境变量中才可运行通过

HandsOn

作业

在员工管理系统中,有普通员工,经理,董事三种角色,

公司所有的员工都有员工Id,员工名字,员工基本薪水

(2000),请假天数;现初步定Employee类为父类,

Manager子类、Director(董事)子葵,它们的区别是

计算工资方式一样。

具体工资计算办法:

•A、工资扣除部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论