java中的继承关系
Posted yunjingx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的继承关系相关的知识,希望对你有一定的参考价值。
既然Java 应用是现实世界的映射,那么Java 类之间的关系就是现实世界中对象之间的关系。
现实世界中的两个对象,可能是关联关系,比如公司设有部门,部门可作为公司的属性存在,即公司关联部门;
也可能是依赖关系,比如员工到外地出差,必须使用一种交通工具,那么员工和交通工具之间就是使用关系,即员工依赖交通工具;
除了这两种关系之外,还有一种非常重要的关系,即继承关系。
例如,银行卡是大多数人所熟悉的,而银行卡分为借记卡、信用卡等。借记卡、信用卡都具有银行卡所具有的功能,如存钱、取钱、刷卡消费等,但是又有区别,如信用卡可以透支,借记卡不可以,如借记卡取现金不需要交利息,而信用卡取现金需要交利息等。可以说,借记卡和信用卡都是银行卡,借记卡和信用卡与银行卡之间是一种“是”的关系。“借记卡是一种银行卡”,“信用卡是一种银行卡”的表述是正确、合理的,这种关系通常称为“IS-A”关系,即“继承”关系。
在 Java 语言中,如果B 类是在A 类的基础上衍生出来的,即B 类不仅拥有A 类的所有属性和方法,还扩展了新的属性或方法,那么就可以让B 类继承A 类,以达到重复使用A 类的目的。
可以说,继承是除了关联之外,另外一种面向对象的复用策略。
Java 语言中,类与类之间使用关键字extends 来表示继承关系。
package com.etc.chapter10;
public class Shape {
public void draw(){}
}
class Circle extends Shape{
public double getDiameter(){
return 0.0;
}
}
class Triangle extends Shape{
public double getArea(){
return 0.0;
}
}
由于圆形和三角形都是一种图形,都具有图形的属性和方法,所以圆形和三角形可以作为图形的子类存在。上述代码中,形状Shape 类是父类,定义了方法draw。而圆形Circle 和三角形Triangle 是Shape 类的子类,使用extends 关键字继承了父类Shape。如此一来,Circle和Triangle 也具有方法draw,而且Circle 和Triangle 又分别扩展了新方法,用来获取直径和面积。
值得注意的是,Java 语言中类与类之间的继承是单继承,即一个类最多只能继承一个父类,而一个父类可以同时有多个子类,单继承可以避免调用混乱。
以上是关于java中的继承关系的主要内容,如果未能解决你的问题,请参考以下文章
java中的集中关系,is a, has a, 继承,重点聊聊继承
java中类与类之间的关系有依赖和继承,那么这两种关系哪个效率高?