继承是面向对象编程技术的一块基石,因为它允许创建分等级层次的类。运用继承,你能够创建一个通用类,它定义了一系列相关项目的一般特性。

让我们看一个更实际的例子,该例子有助于阐述继承的作用。这样,新的类将包含一个盒子的宽度、高度、深度和重量。

// This program uses inheritance to extend Box.
class Box { double width; double height; double depth; // construct clone of an object Box(Box ob) { // pass object to constructor width = ob.width; height = ob.height; depth = ob.depth; } // constructor used when all dimensions specified Box(double w, double h, double d) { width = w; height = h; depth = d; } // constructor used when no dimensions specified Box() { width = -1; // use -1 to indicate height = -1; // an uninitialized depth = -1; // box } // constructor used when cube is created Box(double len) { width = height = depth = len; } // compute and return volume double volume() { return width * height * depth; }
}
// Here, Box is extended to include weight.
class BoxWeight extends Box { double weight; // weight of box // constructor for BoxWeight BoxWeight(double w, double h, double d, double m) { width = w; height = h; depth = d; weight = m; }
}
class DemoBoxWeight { public static void main(String args[]) { BoxWeight mybox1 = new BoxWeight(10, 20, 15, 34.3); BoxWeight mybox2 = new BoxWeight(2, 3, 4, 0.076); double vol; vol = mybox1.volume(); System.out.println("Volume of mybox1 is " + vol); System.out.println("Weight of mybox1 is " + mybox1.weight); System.out.println(); vol = mybox2.volume(); System.out.println("Volume of mybox2 is " + vol); System.out.println("Weight of mybox2 is " + mybox2.weight); }
} 

该程序的输出显示如下:

Volume of mybox1 is 3000.0
Weight of mybox1 is 34.3
Volume of mybox2 is 24.0
Weight of mybox2 is 0.076

BoxWeight继承了Box的所有特征并为自己增添了一个weight成员。没有必要让BoxWeight重新创建Box中的所有特征。为满足需要我们只要扩展Box就可以了。

继承的一个主要优势在于一旦你已经创建了一个超类,而该超类定义了适用于一组对象的属性,它可用来创建任何数量的说明更多细节的子类。每一个子类能够正好制作它自己的分类。例如,下面的类继承了Box并增加了一个颜色属性:

// Here, Box is extended to include color.
class ColorBox extends Box { int color; // color of box ColorBox(double w, double h, double d, int c) { width = w; height = h; depth = d; color = c; }
}

记住,一旦你已经创建了一个定义了对象一般属性的超类,该超类可以被继承以生成特殊用途的类。每一个子类只增添它自己独特的属性。这是继承的本质。

继承的作用是什么?看看下面这些例子吧!相关推荐

  1. java继承的作用_Java继承概述以及Java继承案例和继承的好处

    Java继承概述 1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些相同属性和行为,只要继承那个类即可. 2.在Java中通过extends关键字可以实现类与类的 ...

  2. java中继承的作用,威力加强版

    招聘职位需求套路摘举 以下几个公司的招聘需求:(from lagou) 1.Java开发岗位 职位诱惑: 福利好待遇佳,技术氛围浓,有大牛带成长快. 职位描述: 有赞2021校招官方网申地址(请在官网 ...

  3. 面试官:Java中 serialVersionUID 的作用是什么?举个例子说明

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料!来源:blog.csdn.net/andy_zhang200 ...

  4. C++:OutputDebugString作用(以VS2019为演示例子)

    上最简单的代码: #include <iostream> #include <Windows.h> using namespace std; int main() {Outpu ...

  5. Java中继承、接口、多态的作用详解(纯理论)

    一.继承.接口与多态的相关问题: 1. 继承的作用?好处?坏处? 继承:通过继承实现代码复用.Java中所有的类都是通过直接或间接地继程java.lang.Object类得到的.继承而得到的类称为子类 ...

  6. C++ 继承与多继承

    继承的作用: 用已有的数据类型创建新的数据类型,并保留已有数据类型的特点,被继承的类成为父类或者基类,继承的类成为子类或者派生类. 继承的一般形式 class 子类 : [继承方法] 父类{ }; & ...

  7. 面向对象的三大特性(封装、继承、多态)

    继承 什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class ...

  8. java继承对象转换_java 继承的基础(转)

    java 继承的基础(转)[@more@]继承是面向对象编程技术的一块基石,因为它允许创建分等级层次的类.运用继承,你能够创建一个通用类,它定义了一系列相关项目的一般特性.该类可以被更具体的类继承,每 ...

  9. proto文件支持继承吗_搞懂 Javascript中this 指向及继承原理

    在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的new 到底是干什么的 一.什么是 JS 原型链? 我们知道 JS 有对象,比如 var obj ...

最新文章

  1. 还需要“attention”吗?一堆“前馈层”在ImageNet上表现得出奇得好
  2. VC中的宏 (#define) 与预处理 (#if/#ifdef/#pragma) 的使用方法总结。
  3. [原创].NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略
  4. 营销大数据分析 关键技术_营销分析的3个最关键技能
  5. python接口自动化2-发送post请求
  6. To B业务如何获取客户?
  7. 超松弛迭代法(C语言实现)
  8. 中input标签赋值_Java程序员:Spring MVC JSP表单标签示例
  9. DVWA 靶场通关教程
  10. 编译报错:无法打开包括文件 No such file or directory
  11. Python语法基础14 pickle与json模块 异常处理
  12. CC00054.bigdatajava——|Java分支结构.V04|——|Java.v04|ifelse.v02|判断负数和非负数|
  13. oracle表数据导出成unl文件,oracle的文本导入、导出技巧
  14. html table 内外边框,HTML_TABLE内外边框
  15. scrum要素读书笔记
  16. 如何检测家里的WIFI网络信号?
  17. [工具使用]Wireshark
  18. 另类的黑苹果“安装”方法。
  19. linux lsmod命令 及相关信息
  20. 面试回答,JVM内存模型/内存空间:运行时数据区

热门文章

  1. 2019.7.19刷题统计
  2. Linux(centos)下安装JDK
  3. SpringBoot史前简述
  4. Cabloy-CMS:动静结合,解决Hexo痛点问题
  5. centos7-每天定时备份 mysql数据库
  6. java并发编程(二)synchronized
  7. CppUnit快速入门
  8. stm32PWM输入捕获模式详解
  9. Deep3DBox论文解读
  10. RobotStudio碰撞检测的设定