Javaweb微专业第十一讲-----继承与抽象类
2016-12-30 02:19
183 查看
软件重用是提高软件质量及开发效率的有效途径、面向对象的分析和编程技术为软件重用提供了新的手段
Java不支持类的多重继承,只支持类的单继承,即每个子类智能有一个直接父类,类的层次为树状结构,Object类为树的根节点。但我们可以通过接口来实现多继承的功能(课外:多继承的结构为网状结构)
子类和父类的关系是子类对象与父类对象存在”IS A“(或)”IS KIND OF“的关系。
如果是”HAS A“的关系,我们不建议使用继承,建议使用组合来实现,也就是做成类的实例变量(类的属性)
例如
但由于访问控制,私有的属性与方法子类不能直接访问
继承抽象类,要实现抽象方法,否则该类也是一个抽象类
接口的成员变量都是public,static,final类型的(都可省略),必须被显示初始化
Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化
接口没有构造函数,不能被实例化,但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例
一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口
Java接口必须通过类来实现它的抽象方法
一个类只能继承一个类,但是可以实现多个接口
当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类
一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.
Serializable,表示可以序列化和反序列;
Cloneable接口,表示可以被克隆
2、向上层应用提供操作的标准
3、远程方法视图
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.组合与继承
组合则表示 该类“有一个”,而继承这表示,该类是什么。相关文章推荐
- java中类的继承与抽象类简明教程
- 继承中方法的重写和抽象类
- 继承、finally关键字、抽象类、接口
- 如果一个类实现接口,那么它要实现这个接口所有的方法吗?如果这个类继承抽象类呢?
- 1.面向对象基础(封装、继承、多态、抽象类)0711
- Java 抽象类 接口 继承 实现
- Java接口、抽象类、继承
- 类 对象 抽象类 继承 回顾
- 抽象类是否可继承实体类
- java [继承]-[接口]-[抽象类]-[多态]-[Object]
- 黑马程序员——Java基础——继承接口抽象类
- 黑马程序员——Java基础之继承,抽象类,接口
- python基础----继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法
- 作业05-继承、多态、抽象类与接口
- 内部类大展身手 ———— 有抽象类的多继承
- 关于“抽象类是否可继承实体类”的辨析。
- Java之继承、抽象类、接口篇
- [Think In Java]基础拾遗1 - 对象初始化、垃圾回收器、继承、组合、代理、接口、抽象类
- 抽象类是否可继承实体类
- 抽象类是否可继承实体类