当前位置: 首页 > news >正文

6.1类的继承

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

class Child extends Parent {}

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

class Child extends Parent1,Parents2{}

        子类在继承父类之后,创建子类对象的同时也会调用父类的构造方法。
【例1】创建子类对象,观察构造方法执行顺序
父类Parent和子类Child都各自有一个无参的构造方法,在main()方法中创建子类对象时,Java虚拟机会先执行父类的构造方法,然后再执行子类的构造方法。

class Parent{public Parent(){System.out.println("调用父类构造方法");}
}class Child extends Parent{public Child(){System.out.println("调用子类构造方法");}
}public class Demo{public static void main(String[] args){new Child();}
}

运行结果如下:
调用父类构造方法
调用子类构造方法

        子类继承父类之后可以调用父类创建好的属性和方法。
【例2】在电话类基础上衍生出手机类
Telephone电话类作为父类衍出Mobile手机类,手机类可以直接使用电话类的按键属性和拨打电行为。

class Telephone{    //电话类String button = "button:0~9";    //成员属性,10个按键void call(){    //拨打电话功能System.out.println("开始拨打电话");}
}class Mobile extends Telephone{    //手机类继承电话类String screen = "screen:液晶屏";    //成员属性,液晶屏幕
}public class Demo2{public static void main(String[] args){Mobile motto = new Mobile();System.out.println(motto.button);    //子类调用父类属性System.out.println(motto.screen);    //子类调用父类没有的属性motto.call();    //子类调用父类方法}
}

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

        子类Mobile类仅创建了一个显示屏属性,剩余的其他属性和方法都是从父类Telephone类中继承的。
Java虽然不允许同时继承两个父类,但不代表没有多继承的关系,可以通过类似“祖父>父>儿子>孙子”的方式实现多代继承。
例如,绝大多数动物有眼睛、鼻子和嘴,犬类继承动物类,所以犬类也有眼睛、鼻子和嘴,哈士奇是犬类的一个品种,犬类有的特性哈士奇类都有。但哈士奇的眼睛、鼻子和嘴并不是从犬类继承的,而是从动物类继承的。用Java代码编写则如下:

class Animal{        //父类:动物类

        Eye eye;

        Mouth mouth;

        Nose nose;

}

class Dog extends Animal{}        //子类:犬类

class Husky extends Dog{}        //孙子类:哈士奇类

        这3个类的继承关系就是Husky类继承Dog类继承Animal类,虽然Husky类没有直接继承Animal类,但是Husky类可以调用Animal类提供的可被继承的成员变量和方法。

http://www.dtcms.com/a/541889.html

相关文章:

  • 广东集团网站建设安徽网络seo
  • 爱站查询个人如何学习做网站
  • 怎么开发一个网站安徽省建筑工程信息平台
  • 石家庄网络建站中粮我买网是哪个公司做的网站
  • vue2弹出框组件demo
  • G-Star Landscape 3.0 更新,网页版同步上线!
  • 让进程永不掉线:Linux nohup命令的深度指南
  • 虚拟机上部署Web项目
  • 做类似淘宝的网站需多少资金销售类wordpress
  • wix做的网站在国内访问不了网站谁做的
  • 亚远景-ISO 26262与ISO 21434:汽车安全标准的双基石
  • 模板网站难做seo天津建站管理系统价格
  • ModbusRTU转CCLKIE网关:解决管廊老旧排水仪表接入三菱高速网络瓶颈
  • 女朋友做网站wordpress 在线浏览
  • 做电影网站为什么查封不了一键打开多个wordpress
  • 游戏盾是如何保障游戏安全稳定的?
  • html5网站引导页模板巨量算数关键词查询
  • 查询网站空间商怎么查看一个网站页面的seo优化情况
  • 【普中Hi3861开发攻略--基于鸿蒙OS】-- 第 29 章 WIFI 实验-TCP 通信
  • 合肥建设工程招聘信息网站成都高校网站建设服务公司
  • Linux 线程的同步与互斥机制及应用
  • wap网站制作公司网站建设 doc
  • 强化学习和最优控制有什么关系?
  • 示范专业网站建设如何建立像淘宝一样的网站
  • LeetCode 刷题【136. 只出现一次的数字、137. 只出现一次的数字 II】
  • 信宜手机网站建设公司免费的wordpress账号
  • 6 个 Docker 高级功能
  • AGENT 和自动化工作流的区別
  • 【计算机软件资格考试】软考案例分析题及解析模拟题9
  • 描述一下网站建设的基本流程深圳建设网站费用