div不继承父类样式_Java三大特性之继承
继承的概念:
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
生活中的继承:
![](/assets/blank.gif)
兔子和羊属于食草动物类,狮子和豹属于食肉动物类。
食草动物和食肉动物又是属于动物类。
所以继承需要符合的关系是:is-a,父类更通用,子类更具体。
虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。
类的继承格式:
在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:
![](/assets/blank.gif)
为什么需要继承:
接下来我们通过一个实例来说明这个需求
开发动物类,其中动物名称分别为企鹅和老鼠,要求如下:
- 企鹅:属性(id,姓名),方法(吃,睡,自我介绍)
- 老鼠:属性(id,姓名),方法(吃,睡,自我介绍)
![](/assets/blank.gif)
![](/assets/blank.gif)
从这两段代码可以看出,代码存在重复了,导致后果就是代码量大且臃肿,而且维护性不高。所以要从根本上解决这两段代码的问题,就需要继承,将两段代码中相同的部分提取出来组成一个类。
![](/assets/blank.gif)
这个Animal 类就可以作为一个父类,然后企鹅和老鼠类继承这个类后,就具有了父类当中的属性和方法,子类就不会存在重复的代码,维护性也提高了,代码也更加整洁,提高了代码的复用性,继承之后的代码:
企鹅类
![](/assets/blank.gif)
老鼠类
![](/assets/blank.gif)
继承类型
需要注意的是 Java 不支持多继承,但支持多重继承。
![](/assets/blank.gif)
![](/assets/blank.gif)
继承的特性:
子类拥有父类非private 的属性和方法
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
子类可以用自己的方式实现父类的方法
Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类。
提高了类之间的耦合性(继承的缺点,耦合度高会造成代码之间的联系越紧密,代码独立性越差)
div不继承父类样式_Java三大特性之继承相关推荐
- java 继承作用_java三大特性之继承
继承(extends): 让类与类之间产生关系,子父类的关系 继承的好处与弊端: 好处: 提高代码的复用性 提高了代码的维护性 让类与类之间产生关系,是多态的前提 弊端: 类的耦合性增加 开发的原则是 ...
- java三大特性 继承_java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- java 集成_java提高篇(二)-----理解java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- 面向对象的三大特性之继承
# 面向对象的三大特性之继承# 当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好 (如机器人) # 当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好 (动物-- ...
- 【转】java提高篇(二)-----理解java的三大特性之继承
[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...
- Java提高篇 —— Java三大特性之继承
一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...
- Python - 面向对象编程 - 三大特性之继承
继承 继承也是面向对象编程三大特性之一 继承是类与类的一种关系 定义一个新的 class 时,可以从某个现有的 class 继承 新的 class 类就叫子类(Subclass) 被继承的类一般称为父 ...
- 04 面向对象之:三大特性:继承,封装,多态
前言: Python面向对象的三大特性:继承,封装,多态 1.封装:把很多数据封装到一个对象中,把固定功能的代码封装到一个代码块,函数,对象,打包成模块.这都属于封装的思想.具体的情况具体分析,比如, ...
- Python面向对象之:三大特性:继承,封装,多态以及类的约束
前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情 ...
最新文章
- linux进程服务,Linux服务及进程
- 数据科学竞赛-计算机视觉赛流程
- 37 Reasons why your Neural Network is not working
- stract oracle,ORACLE 字符串聚合函数 strCat
- linux sudo 免密码
- python画一条水平直线(matplotlib)
- Python中的openpyxl如何对excel修改文件
- layui表格——table.render(options)(转)
- Wi-Fi 6 「破茧成蝶」,高通全面布局端到端最佳解决方案
- iOS 清理缓存方法
- 雪豹学院主办“2019年《ASM敏捷大咖》见修系列公开课”深圳宝安站活动圆满结束
- 武汉江夏区计算机大专,武汉江夏职业技术学校2021年招生简章
- 使用 Tenderly 为区块链交易设置警报通知
- 左神进阶班-KMP算法
- 故事版(StoryBoard)的学习-----使用prepareForSegue方法
- XUL 用户界面语言介绍
- gsoc 任务_gsoc 2020火箭聊天React式全屏作曲家
- janus videoroom之媒体录制
- 大学STEM教育的技能水平和收获
- 全方位解读Web3域名:DID基石、NFT新增长点
热门文章
- java gc error_java.lang.OutOfMemoryError GC overhead limit exceeded原因分析及解决方案
- qt 子窗口与父窗口数据通信_Qt实例--主窗口和子窗口互发信号
- Ubuntu 安装 Redis (非源码Build方式)
- 利用JAVA获取远程文件及使用断点续传 供学习者使用
- jQuery常用方法
- Spring Boot学习笔记:Spring Boot的Web功能
- 解决Windows 10下MySQL 5.7中文乱码问题
- CTSC2017APIO2017
- 二叉树C++ | 广度优先遍历(层级顺序遍历)_2
- Intel Core Enhanced Core架构/微架构/流水线 (4) - 流水线前端概述