java 继承 ppt_理论五继承_JAVA学习课件_ppt_大学课件预览_高等教育资讯网

Java

继承

例子:请确认各类之间的关系

plane

military plane( 军事)

passenger plane ( 客机)

cargo plane ( 货物)

fighter plane ( 战斗机)

Airliner ( 民用机)

Plane

Military plane Airliner

Fighter plane

Cargo plane Passenger plane

Executive jet

Public class Employee

{

String name;

Date hireDate;

Date dateofBirth;

String jobTitle

int grade;

public String getDetails()

}

Public class Manager

{

String name;

Date hireDate;

Date dateofBirth;

String jobTitle

int grade;

String Department;

public String getDetails()

public void Guide()

}

Continue

Public class manager extends employee

{

String department;

public void Guide()

}

关键字 extends 是解决继承问题的继承

类之间的继承关系是面向对象程序设计语言的基本特征

一个类(子类)是另一个类(父类)的特例。父类是被继承的,子类是继承的

一般性(父类)和特殊性(子类)

Continue

新类继承一般类的状态和行为,并根据需要增加自己的状态和行为。

由继承而得到的类称为子类 (sub class),被继承的类称为父类 (super class)。

父类可以是自己编写的类,也可以 JAVA类库中的类。

利用继承可以有效使用代码的重复使用。

JAVA不支持多重继承,即子类只能有一个父类。

继承的定义

子类的成员有一部分是子类自己声明定义的。

另一部分是从它的父类继承的。

子类继承父类的成员变量作为自己的一个成员变量。

继承父类的方法作为自己的方法。

CONTINUE

使用关键字 extends来声明一个类是另一个类的子类。

格式如下:

class 子类名 extends 父类名

例如:

class students extends People

{

}

例子,Son是 Father的子类,而 GrandSon是 Son的子类子类和父类不在同一包中

上面的例子,前提是在同一包中。

假如不在同一包中,那么子类只继承父类的 public,public 成员。 default 成员不能被继承。

子类可以调用继承的方法来操作未被继承的变量。

x 尽管是不被 B继承的,但是 B仍旧可以通过继承方法 f()来操作 x.

成员变量隐藏

当子类中定义的成员变量只要和父类中的成员变量同名时,子类就隐藏了继承的成员变量。

方法重写(成员方法隐藏)

子类可以隐藏已继承的方法,子类通过方法重写来隐藏继承的方法。

方法重写:定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同。

子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。

子类继承父类的 speak()方法和 cry()方法,但子类通过重写 speak()隐藏了继承的 speak()方法。

Super关键字

super有两种用法:一种是子类使用 super调用父类的构造方法,另一种是子类使用 super调用被子类隐藏的成员变量和方法。

子类不继承父类的构造方法,因此子类如果想使用父类的构造方法,必须在子类的构造方法中使用关键字 super来表示。而且 super必须是子类构造方法中的第一条语句 。

子类在创建对象时,子类的构造方法总是先调用父类的某个构造方法。

CONTINUE

如果子类的构造方法没有明显指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。

因此如果在子类的构造方法中,没有使用关键字 super调用父类的某个构造方法,

那么默认有,super ( ),即调用父类的不带参数的构造方法。

Super操作被隐藏的成员

如果子类和父类的成员变量同名时,子类就隐藏了从父类继承的成员变量。当子类定义一个方法,并且这个方法的名字、返回类型,参数个数和类型与父类的某个方法完全相同是,子类从父类继承的这个方法将隐藏。

我们要调用父类隐藏的成员,我们可以使用

super:

super.成员变量;

super.成员方法;

Which one is added to the line 8,and the program will

be not compiled successfully?

A.public float getNum{return 4.0f}

B.public void getNum(){}

C.public void getNum(double d){}

D.public void getNum(float d){return 4.0d;}

习题

Result?

Resutl?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值