继承的概念:

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

生活中的继承:

兔子和羊属于食草动物类,狮子和豹属于食肉动物类。

食草动物和食肉动物又是属于动物类。

所以继承需要符合的关系是:is-a,父类更通用,子类更具体。

虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。

类的继承格式:

在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:

为什么需要继承:

接下来我们通过一个实例来说明这个需求

开发动物类,其中动物名称分别为企鹅和老鼠,要求如下:

  1. 企鹅:属性(id,姓名),方法(吃,睡,自我介绍)
  2. 老鼠:属性(id,姓名),方法(吃,睡,自我介绍)

从这两段代码可以看出,代码存在重复了,导致后果就是代码量大且臃肿,而且维护性不高。所以要从根本上解决这两段代码的问题,就需要继承,将两段代码中相同的部分提取出来组成一个类。

这个Animal 类就可以作为一个父类,然后企鹅和老鼠类继承这个类后,就具有了父类当中的属性和方法,子类就不会存在重复的代码,维护性也提高了,代码也更加整洁,提高了代码的复用性,继承之后的代码:

企鹅类

老鼠类

继承类型

需要注意的是 Java 不支持多继承,但支持多重继承。

继承的特性:

子类拥有父类非private 的属性和方法

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展

子类可以用自己的方式实现父类的方法

Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类。

提高了类之间的耦合性(继承的缺点,耦合度高会造成代码之间的联系越紧密,代码独立性越差)

div不继承父类样式_Java三大特性之继承相关推荐

  1. java 继承作用_java三大特性之继承

    继承(extends): 让类与类之间产生关系,子父类的关系 继承的好处与弊端: 好处: 提高代码的复用性 提高了代码的维护性 让类与类之间产生关系,是多态的前提 弊端: 类的耦合性增加 开发的原则是 ...

  2. java三大特性 继承_java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  3. java 集成_java提高篇(二)-----理解java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  4. 面向对象的三大特性之继承

    # 面向对象的三大特性之继承# 当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好 (如机器人) # 当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好 (动物-- ...

  5. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

  6. Java提高篇 —— Java三大特性之继承

    一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...

  7. Python - 面向对象编程 - 三大特性之继承

    继承 继承也是面向对象编程三大特性之一 继承是类与类的一种关系 定义一个新的 class 时,可以从某个现有的 class 继承 新的 class 类就叫子类(Subclass) 被继承的类一般称为父 ...

  8. 04 面向对象之:三大特性:继承,封装,多态

    前言: Python面向对象的三大特性:继承,封装,多态 1.封装:把很多数据封装到一个对象中,把固定功能的代码封装到一个代码块,函数,对象,打包成模块.这都属于封装的思想.具体的情况具体分析,比如, ...

  9. Python面向对象之:三大特性:继承,封装,多态以及类的约束

    前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情 ...

最新文章

  1. 谁动了我的主机? 之活用History命令|Linux安全运维
  2. python模拟ATM + 购物商城
  3. 小程序不同页面之间通讯的解决方案
  4. python安装oracle驱动_python安装oracle扩展及数据库连接方法
  5. 如何判断软件架构的好与坏
  6. 计算机考试网络应用题一定要做到ie浏览器,网络远程教育统考单项练习:计算机应用基础之Internet应用部分(二)...
  7. 从SQL过渡至MongoDB查询对照表
  8. xgboost算法原理_从XGB到SecureBoost:看联邦学习XGB的算法原理
  9. 阿里云服务器企业该如何选择
  10. 数据库删除表中多列语法总结
  11. 批量下载花瓣图片脚本--抖机灵
  12. 小度智能音响拆解 芯片_拆机解析,小度智能音箱1S,万能遥控版音箱,这做工你想不到...
  13. excel 小技巧——如何在每列后插入一列并指定内容(如何隔列插入一列并指定内容)
  14. OFFPIPE 海底管道铺设计算分析软件
  15. 项目管理(课程总结1)Week1 澳大利亚维多利亚大学VIT1203 Introduction to Project Management
  16. JZOJ 3337. 【NOI2013模拟】wyl8899的TLE
  17. Python界面设计之Label
  18. linux下磁盘情况查询命令
  19. 后缀是lnk是什么文件_后缀lnk是什么文件格式(lnk文件怎么恢复word)
  20. 微信小程序登录授权{errcode:40013,errmsg:invalid appid, hints: [ req_id: qECcC0yFe-_ ]}问题

热门文章

  1. Java Web应用小案例:猜数小游戏
  2. POJ3163 King of Fighters 状压DP/费用流
  3. 【BZOJ4568】幸运数字,树链剖分/倍增+维护线性基
  4. 【POJ16553107】树的重心——点分治的准备
  5. 【codevs2440】【BZOJ1066】蜥蜴,最大流
  6. node ajax validator,node/express 4:在ajax post上使用express-validator显示错误
  7. 【英语学习】【WOTD】finicky 释义/词源/示例
  8. Android OpenGLES2.0(十六)——3D模型贴图及光照处理(obj+mtl)
  9. visual studio code安装_Deepin系统中如何安装Visual Studio Code
  10. linux下c 指针变量大小,C语言sizeof关键字