继承

1.理解继承的概念

继承是面向对象编程中最重要的特征之一。它允许通过继承一个已经存在的类,来编写一个新类。

 

在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(Inheritance)。

 

已有的类称为父类,而新类称为子类。父类也可以称为基类、超类,子类也可以称为派生类。这些术语可以互换,但是意思是相同的。

(1).使用"is a"关系判断继承

is a”关系是一个简单而强大的规则,用于判断父类和子类的继承关系是否正确。当使用继承时,我们必须能够说子类“ is a(是一个)” 父类。如果这个语句是真的,那么继承关系就是对的。

(2).java中继承的实现

 

我们已经知道为什么在面向对象编程中要使用继承。现在,让我们来看看Java中是如何实现继承的。

Java中,一个类使用关键字extends继承其它类。关键字extends出现在类声明时的类名后,extends后面跟着的是要继承的类的名称。

 

例如,下面的语句用于声明Salary类是Employee类的子类:

public class Salary extends Employee

同样,Hourly类可以用如下的语句继承Employee类:

public class Hourly extends Employee

(3).单继承与多继承

某些OOP语言(例如C++)允许子类有多个父类。但是,在Java中这是不允许的。在Java中,一个类只能有一个父类。例如,Salary类不能同时继承Employee类和Manager类。多继承在Java中是不允许的。Java语言的目标之一是创建一个易于使用和理解的面向对象编程语言。而多继承只能给编程语言带来混淆。

 

一个Java类只能有一个父类。但是这并不意味着一个类没有祖父、曾祖父等等。一个Java类可以有父类、父类也可以父类,依此类推。

(4).所有类的根类object

 

Java语言API中包含了一个名为Object的特殊类,它是整个Java类层次中的根类。Object类在java.lang包中,是每个Java类的父类,要么是直接的父类,要么就是间接父类。

2.方法重写

 

子类可以重写从父类继承的方法,从而允许子类添加或者改变父类中方法的行为。这称为方法重写,是OOP的特征之一。

 

 

 

当子类重写父类的方法时,必须遵循如下的规则:

 

 子类的方法的返回值的类型、方法名和形式参数列表,必须和父类中的是相同的。如果子类中的方法与父类中的方法同名,但是子类的方法改变了形式参数列表,那么这是方法重载,而不是方法重写。不要混淆这两个概念,二者的用法是完全不同的。

 

访问修饰符必须不小于父类中的访问修饰符。例如,如果父类的方法是public,那么子类的必须是public。如果父类的方法是protected,那么子类必须是protectedpublicpublicprotected访问权更大)。

 

posted on 2019-06-10 21:02  Youth峰峰  阅读(156)  评论(0编辑  收藏  举报