Java第七章继承

继承和多态是面向对象开发中非常重要的一组概念。继承和多态使用得当,整个程序的架构将变得非常有弹性,同时可以减少代码的冗余性。继承机制下,用户可以复用一些定义好的类,减少重复代码的编写。多态机制下,用户可以动态调整对象的调用,降低对象之间的依存关系。为了优化继承与多态,一些类除了可继承父类,还需要使用接口的形式。Java中的类可以同时实现多个接口,接口被用来建立类与类之间关联的标准。正因为具有这些灵活、高效的机制,Java语言才更具有生命力。

7.1 类的继承
继承在面向对象开发思想中是一个非常重要的概念,它使整个程序架构具有一定的弹性。在程将中复用一些已经定义完善的类,不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性,本节将详细讲解类的继承。

在Java 语言中,一个类继承另一个类需要使用关键字extends,关键字extends的使用方法如下:class Child extends Parent{}

因为Java只支持单继承,即一个类只能有一个父类,所以类似下面的代码是错误的:

class Child extends Parent1,Parents2{}

子类在继承父类之后,创建子类对象的同时也会调用父类的构造方法。

例7.1】创建子类对象,观察构造方法执行顺序

父类Parent 和子类Child 都各自有一个无参的构造方法,在main()方法中创建子类对象时,Java虚拟机会先执行父类的构造方法,然后再执行子类的构造方法。

 

子类继承父类之后可以调用父类创建好的属性和方法。

【例7.2】在电话类基础上衍生的建对的(实例位置:资源包\TMSI72)
 
Telephone 电话类作为父类衍出Mobile手机关,手机类可以直接使用电话类的按键属性和拨打电
 
话行为。 class Telephone{
 
//电话类
 
String button ="button:0~9";
 
//成员属性,10个按键
 
void call(){
 
//拨打电话功能
 
System.out.printin("开始拨打电话");
 
子}} class Mobile extends Telephone{
 
//手机类继承电话类
 
String screen="screen:液晶屏";
 
//成员属性,液晶屏幕
 

 
public class Demo2{ public static void main(Stringl args) {
 
下:
 
Mobile motto=new Mobile(); System.out.println(motto.button);
 
//子类调用父类属性
 
System.out.println(motto.screen);
 
//子类调用父类没有的属性
 
motto.call();
 
//子类调用父类方法 }}

运行结果如下:
 
button:0~9
 
为f
 
screen:液晶屏 开始拨打电话 

子类Mobile 类仅创建了一个显示屏属性,剩余的其他属性和方法都是从父类Telephone 类中继

承的。 Java虽然不允许同时继承两个父类,但不代表没有多继承的关系,可以通过类似“祖父>父>儿子>

孙子”的方式实现多代继承。

例如,绝大多数动物有眼睛、鼻子和嘴,犬类继承动物类,所以犬类也有眼睛、鼻子和嘴,哈士

get

奇是犬类的一个品种,犬类有的特性哈士奇类都有。但哈士奇的眼睛、鼻子和嘴并不是从犬类继承的,

而是从动物类继承的。用Java代码编写则如下:

 class Animal{    //创建类
 
//父类:动物类
 
Eye eye; Mouth mouth; Nose nose; {   //定义变量
 
class Dog extends Animal{}
 
//子

你可能感兴趣的:(java,jvm,开发语言)