您的位置:首页 > 编程语言 > Java开发

Javaweb微专业第十一讲-----继承与抽象类

2016-12-30 02:19 183 查看
软件重用是提高软件质量及开发效率的有效途径、面向对象的分析和编程技术为软件重用提供了新的手段

1.类的继承

1.继承的相关概念

一个类从现有的类中派生,这个过程称为类继承。没有显示指定父类时,父类隐含为java.lang包中的Object类。也就是说,所有类都是Object类的子类。一个父类可以拥有多个子类,每个子类是父类的特殊化,是在公共属性的基础上的功能、内涵的拓展和延伸。

Java不支持类的多重继承,只支持类的单继承,即每个子类智能有一个直接父类,类的层次为树状结构,Object类为树的根节点。但我们可以通过接口来实现多继承的功能(课外:多继承的结构为网状结构)

子类和父类的关系是子类对象与父类对象存在”IS A“(或)”IS KIND OF“的关系。

如果是”HAS A“的关系,我们不建议使用继承,建议使用组合来实现,也就是做成类的实例变量(类的属性)

1.2用extends关键字来实现

extend 就是继承的意思,加s是因为第三人称单数

例如

public class Employee extends Person{
...
}


1.3继承的好处

采用继承的机制来组织、设计类,可以提高程序的抽象程度,更接近人类的思维方式,采用继承编写的程序结构清晰,节省编程时间。

1.4隐藏与覆盖

子类能够从父类那里继承到什么。子类从父类继承父类的所有东西。

但由于访问控制,私有的属性与方法子类不能直接访问

2.抽象类

2.1 抽象类的定义

abstract class Animal{

}


2.2 抽象方法

abstract class Animal{
public abstract int run(); //抽象方法,抽象方法只需提供声明不用实现
}


继承抽象类,要实现抽象方法,否则该类也是一个抽象类

2.3 抽象类作用

模板设计模式

3.接口与接口的实现

3.1接口的定义

[访问控制符]interface <接口名> {
final 数据类型 符号常量名 = 常数;
返回值类型  方法名([参数列表]);
…
}


3.2接口的实现

如何实现一个接口

class Dog implements Animal{
//实现接口的方法(这里省略,这里implements 也是因为第三人称单数+s)
...

}


接口的成员变量都是public,static,final类型的(都可省略),必须被显示初始化

Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化

接口没有构造函数,不能被实例化,但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例

一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口

Java接口必须通过类来实现它的抽象方法

一个类只能继承一个类,但是可以实现多个接口

当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类

一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.

3.3 接口的作用

1、标识具有某种能力,最常见的两个接口:

Serializable,表示可以序列化和反序列;

Cloneable接口,表示可以被克隆

2、向上层应用提供操作的标准

3、远程方法视图

4.组合与继承

组合则表示 该类“有一个”,而继承这表示,该类是什么。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: