我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:彩66彩票 > 多态逻辑 >

Java三大特性——继承封装和多态

归档日期:04-30       文本归类:多态逻辑      文章编辑:爱尚语录

  基础不牢固的原因,于是继续看Java编程思想,遇到重要的地方就做一些总结。

  比如,猫是动物的一种,它理应拥有动物最基本的属性和功能,所以构造Cat类时就可以继承已有的Animal类,在其基础上做扩展。Cat类就称为子类,Animal类就称为父类。

  继承很方便的实现了代码复用,子类可以直接获得父类的已有功能,不需自己实现,然后再扩展自己独有的功能就好,效率提高。

  但这是一种强耦合关系,因为父类的实现是对子类透明的,父类变动则所有子类均受变动,而且Java有单继承限制,一个类只能有一个父类,哪怕它与很多类有IS—A关系。

  一个类中的内容可大致分成三部分:属性,方法和构造器。就从这三方面分析子类真正继承了什么。

  构造器:构造器只能调用,不可继承。Java有构造方法链,编译器会从父类的构造方法开始向子类一级一级完成构建,这是必须的,对父类构造方法的调用一定是子类构造方法中的第一行代码。当然,若父类有默认的空参构造器,编译器会默认调用不需我们手动调用,但若父类没有,则必须手动调用:super(XXX).

  对象有自己的属性和方法,当我们需要对这些信息加以保护或限制外界的访问权限时,就要使用封装。

  比如,对一些重要实现逻辑客户不能更改也不必知道,就可使用private修饰符,对一些重要属性客户只能读不能写,就可使用private修饰符外加get方法。

  减少相互间的依赖,降低耦合,容易维护和使用;内部逻辑更改迭代不会影响客户的使用;控制了客户权限,安全性提高。

  其中,public型无限制,protected型限制为子类或包内可访问,void型限制包内可访问,private型限制仅类中可访问。

  一个变量一般有声明类型和实际类型两种属性,如上代码,变量a的声明类型为Animal,实际类型为Cat,这是多态的一部分体现。

  所谓多态,是指变量的实际类型及变量最终会调用何处的实现(属性和方法等)只有在运行期间才确定,编译时并不确定。正因为运行时才确定,所以无需更改逻辑代码,运行状态(可以理解为run起来的代码)就会随变量实际类型的改变而改变,这就是多态性。

  上面的方法,传入Cat型参数,运行时执行的就是Cat类中eat方法,传入Dog型参数,就会执行Dog类中的eat方法了。

  如上,若eat方法只存在于Animal类,没有问题,最后调用的就是Animal类中的eat方法;若只存在于Cat类,则会报错,因为向上转型后,a无法直接调用子类中的方法,编译失败,必须先进行类型强转后才可;那若Animal类和Cat类中均有eat方法呢,调用的是Animal类还是Cat类中的呢?编译和运行时一样吗?调用属性时又是什么情况?

  不论声明类型与实际类型是否一致,对属性来说:编译检测和运行调用均看声明类型,无论静态与否;对方法来说:则要区分静态与否,静态下编译检测和运行调用均看声明类型,非静态下编译检测看声明类型,运行调用看实际类型。

  继承代表IS—A型关系,接口代表HAS—A型关系。比如,新陈代谢这个功能,猫有,树木也有,他们与新陈代谢之间就是典型的HAS—A型关系,所以就应该用接口实现。相对于继承,接口可以多实现,就是说一个类只能继承一个父类但可以实现多个接口,这样就有更灵活的扩充性和组合性。

  编写程序实现披萨的制作。需求说明编写程序,接收输入信息,选择需要制作的披萨。可供选择的披萨有:培根披萨和海鲜披萨。实现思路及关键代码1)分析培根披萨和海鲜披萨。2)定义披萨类(作为父类)。属性:名称、...博文来自:weixin_42813370的博客

  本文参照于狄泰软件学院,唐佐林老师的——《C++深度剖析教程》博文来自:食梦者

  一、Java的三大特性(封装,继承,多态)a)封装        面向对象程式设计中,封装(Encapsulation)就是把类的内部与外界隔离起来,把实现数据和方法的包装(隐藏),防止该类的代码和数...博文来自:大Z小z的博客

  抽象:我们在定义一个类的时候,实际上就是把一类事物的公有的属性和行为提取出来,形成一个物理模型,这种研究问题的方法称为抽象。 封装:封装就是把抽象的数据和对数据进行的操作封装在一起,数据被保存在内部,...博文来自:manchengpiaoxue的博客

  Java的四大特性分别是封装,继承,多态与抽象。1.封装封装的概念:把对象的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口。封装的好处:...博文来自:hs2201056的博客

  Java中面向对象3大特性中,继承和多态还是挺重要的,也是面试题中常考内容之一。一.继承:(extends关键字,父类最好用protected,构造方法有参和无参均写上,注意方法重写和重载)定义:从父...博文来自:HaleyLiu123的博客

  面向对象的三大特点:封装:将有一定功能的代码封装起来,使用时调用即可继承:将公共的属性和方法放在父类中,自己自考虑特有的属性和方法。多态:程序运行过程中,根据执行条件的不同,动态执行不同的操作代码的过...博文来自:yangkaiorange的博客

  面向对象有三大特性:封装继承与多态。通过简单易于理解的案例和概念,依次学习该三大特性。

  “世界处处不设计”有物混成,先天地生。寂兮寥兮,独立而不改,周行而不殆,可以为天地母。吾不知其名,字之曰道,强为之名曰大。大曰逝,逝曰远,远曰反。道是什么?道可道,非常道。道不明,说不尽的才算是道,它...博文来自:平凡之路无尽路的博客

  一、封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信...博文来自:樊灵洁

  Java面向对象的三大特征:封装、继承、多态封装和继承几乎都是为多态而准备的一、     封装首先,属性能够描述事物的特征,方法能够描述事物的动作。封装就是把同一类事物的共性(包括属性和方法)归到同一...博文来自:qianyue94bang的博客

  一、继承:一个类继承另一个类,则继承的类为子类,被继承的类为父类。它的目的就是实现代码的复用。子类继承父类后就自动拥有了父类的属性和方法,但是,父类的私有属性和构造方法并不能被继承。另外,继承后子类还...博文来自:……

  java的三大特性主要是      一:封装   在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。   封装可以被认为是一...博文来自:HRZIT的博客

  继承(inheritance)简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型。继承是面向对象的三个基本特征--封装、...博文来自:jayxu无捷之径的博客

  addbyWJB  date2018/08/30面向对象的三大特性:封装,继承和多态;封装:将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系。继承:子类可以拥有父类的属性和方法;多态:以说是...博文来自:wangjianbo09的博客

  用了C++一段时间,感觉对C++慢慢有了一点认识,在这和大家分享一下。C++是一款面向对象的语言,拥有面向对象语言的三大核心特性:继承,封装,多态。每一个特性的良好理解与使用都会为我们的编程带来莫大的...博文来自:weixin_38403778的博客

  面向对象的三大特征: 1.封装:属性和方法放到类内部,通过对象访问属性或者方法,隐藏功能的实现细节.当然还可以设置访问权限; 2.继承:子类需要复用父类里面的属性或者方法,当然子类还可以提供自己的属性...博文来自:simuLeo的博客

  封装n 分析需求,用封装方式设计类,画出类图u 汽车销售人员销售汽车,可售款式有凯越、君威Ø 每款汽车有款式和编号,款式、编号不能修改(private)Ø 汽车销售人员有姓名,姓名不能修改(priva...博文来自:brid_fly的博客

  java面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍,this,super,构造方法的使用介绍...博文来自:的博客

  本文是对面向对象编程三大特性(封装、继承、多态)的一个学习总结。封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是...博文来自:简约人生的博客

  目录一、封装二、继承三、多态一、封装1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只...博文来自:l1394049664的博客

  1.封装程序仅通过对象的方法与对象数据进行交互,封装给对象赋予了“黑盒”特征,提高代码的重用性和可靠性。一个类可以全面改变存储数据的方式,只要仍旧使用同样的方法操作数据,其他对象就不会知道也不必介意所...博文来自:陈三的博客

  面向对象三大特征:封装,继承,多态;一、封装:该公开的就公开话,该私有的就隐藏掉,主要是由public,private实现;作用是便于分工和分模块,防止不必要的扩展;二、继承:就是一种传承,可以把父类...博文来自:从今以后...

  Java面向对象的三大特征(封装,继承,多态)图解博文来自:白墨的小白博客

  不能比这个家伙写的再明确了转载出处:面向对象编程有三大特性:封装、继承、多态。      封装...博文来自:hexi_sijin的专栏

  Java语言的三大特性即是:封装、继承、多态封装:首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。1.概念...博文来自:的博客

  要分享Js一些基础理论知识,但是在项目中却十分实用。回想之前一次令人心碎的面试,等了将近50分钟,可是面试却不到10分钟,我的心里受到成吨的打击与伤害,以前一直不注重扎实基础,当面试官坐下的那一刻我就...博文来自:sunshine的博客

  前几篇是Java的入门篇,主要是了解一下Java语言的相关知识,从本篇开始是Java的进阶篇,这部分内容可以帮助大家用Java开发一些小型应用程序,或者一些小游戏等等。本篇的主题是接口、继承与...博文来自:adamjwh的博客

  1、 什么是继承,继承的特点?子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。特点:在继承关系中,父类更通用、子类更具体。父类具有更一般的...博文来自:新新

  1.封装    封装:就是隐藏对象的属性和实现细节,仅对外提供公共访问方式。   封装的好处:隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据;可以方便的加入存取控制语句,限制不合理操作....博文来自:今生梦梦今生

  我们知道封装、继承和多态是面向对象方法设计中的三大基本特性,下面将具体讲解这三个特性的具体表现及意义。一、封装1、说明从字面意思上看,封装就是打包的意思,将什么包装起来,专业一点就是信息的隐藏,将...博文来自:张慧颖 廊坊师范学院信息技术提高班 十四期

  今天看了一下js,加强javascript.资料来源于传智播客与网络。做了一些记录,如下:java三大特性:封装、继承、多态。js也能将这三大特性体现的淋漓尽致。js对象也是一样的,一直做java,...博文来自:yang576017120的专栏

  一、面向对象的三大特性:   1.封装:是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是类的特征之一,应该很好理解,像一些私有的,别的类...博文来自:众里寻她千百度,蓦然回首,那人却在灯火阑珊处

  this在每个类的内部,都有一个隐含的成员变量,该类的类型就是该类的类型,该成员变量的名称是this,this是一个引用,指向自身的对象。this的用法:        1、this调用本类中的属性,...博文来自:dragon901的博客

  继承继承可以使现有的代码具有可重用性和可扩展性。它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。其继承的过程,就是从一般到特殊的过程。通过继承创建的新类称为”子类”或”...博文来自:T_tangcのblog

  为什么要面向对象编程?以前开发的过程通常是采用面向过程编程,面向过程是以过程为中心来进行编程设计,本质上是分析出需要哪些过程,在编程时一步步的对其实现,但是随着软件规模的扩大,这种面向过程的设计模式已...博文来自:王洋的专栏

  c++是基于面向对象的编程语言,面向对象的三大特性为:封装、继承和多态。本文将我对继承与多态的理解进行了总结归纳,这部分内容对于学习c++编程语言是非常重要的,文章加入我的个人理解,希望能给大家带来帮...博文来自:XHfight的博客

  我们前面已经介绍了面向对象编程的三大特性之二,今天就介绍最后一个特性-多态。什么叫多态?从字面上理解就是多种形态,即对同一个客体,可以有多种不同的形式。就好像糖一样,有多种口味,你想吃什么口味的就可以...博文来自:明立的博客

  一、继承的基本概念什么是继承?继承就是可以直接使用前辈的属性和方法。为什么需要继承?自然界如果没有继承,那一切都是处于混沌状态。在软件开发中,我们可以借鉴自然界的机制。已经有的东西我们希望能够直接拿来...博文来自:晚来风急

  面向对象的三大特性 封装 定义:将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义,即用类进行数据抽象。 继承 定义:用类派生从一个类继承另一个类,派生类继承基类的成员。 访问...博文来自:zzhang_12的博客

  面向对象的程序设计有三大特性:封装、继承和多态。封装C++语言中支持数据封装,类是支持数据封装的工具,对象是数据封装的实现。在封装中,还提供一种对数据访问的控制机制,使得一些数据被隐藏在封装体内,因此...博文来自:山上有只羊M

  一、封装性    封装性是面向对象编程的核心思想。    封装性是通过访问控制修饰符来限定应用程序内文件的访问级别的,Java语言中的访问控制级别有4种:    public: 意思为共有的、公共的。...博文来自:的博客

  Java面相对象的三大特征:封装,继承,多态;一、封装(隐藏成员变量)步骤:1.隐藏成员变量。将成员变量加private。       结果:其他类再创建狗的对象的时候,在调用成员变量时显示错误。  ...博文来自:weixin_39469005的博客

  面向对象的三个基本特征面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一...博文来自:景月娇 廊坊师范学院信息技术提高班 十四期

  原文地址:因为需要用,所以才翻译了这个文档。但总归赖于英语水平很有限,翻译出来的中文有可能...博文来自:ymj7150697的专栏

  一、背景    一直以来,应用的流畅度都关乎着用户的体验性,而体验性好的产品自然而然会受到更多用户的欢迎,所以对于广大的工程师来说,界面的卡顿优化一直是Android应用性能优化的重要一环。而当前应用...博文来自:u012874222的博客

  ubuntu桌位大众化的linux系统大家最熟悉不过,但是ubuntu的server版本也相当出色。作为习惯使用英文系统的人难免会遇到中文不支持情况,桌面版安装语言包非常方便,可是如果只能ssh远程连...博文来自:SweetTool的专栏

  最近正好又用到 DM368 开发板,就将之前做的编解码的项目总结一下。话说一年多没碰,之前做的笔记全忘记是个什么鬼了。还好整理了一下出图像了。不过再看看做的这个东西,真是够渣的,只能作为参考了。项目效...博文来自:不积跬步,无以至千里

  不久之前,开始学习深度学习,这个时候发现用CPU计算的Keras框架性能明显不够用了,但当时随便弄了一下没能成功实现GPU加速。于是后来一次重装系统,从头详细地重现这个过程。Python环境搭建要搭建...博文来自:qilixuening的博客

  采用EasyUI 1.4.x 版本,默认default风格,异步加载页面,多Tab页展示,使用JSON文件模拟从后台动态获取数据。...博文来自:般若

  上一篇博客介绍了如何解决Fragment重叠的问题,有需要的同学可以看一下,底部有demo下载。 直通车:完美解决Fragment重叠本篇博客我们来说一下怎么让fragment重新加载布局资源文件。...博文来自:喻志强的博客

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自:九野的博客

  该地址有中文文档的下载 是2.5版本的 非常不错 博文来自:slwsf的专栏

  优先队列(priority queue)亦即数据结构中的堆,是计算机科学中一类特殊的数据结构的统称。在队列中,调度程序反复提取队列中第一个作业并运行,因而实际情况中某些时间较短的任务将等待长时间才能结...博文来自:weixin_39540045的博客

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自:Websites

  上一篇文章讲解了SNMP的基本架构,本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1、v2c、v3)进行区别! 四、SNMP协议数据单元 在SNMP管理中,管理站(NMS)和代理(Age...博文来自:假装在纽约

  在MATLAB中,可以注释一段程序。 使用“%{”和“%}”。 例如 %{ 。。。 %} 即可。 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 ...博文来自:知识小屋

  转载地址:分页查询有三种方法,它们都是基于SQLite SQ...博文来自:duxingzhe2012729的博客

  如下图所示,蜂窝小区,以1为中心,顺时针编号,编号最大限定为100000。求任意两编号之间的最短距离。两个相邻小区的距离为1 示例:19到30的最短距离为5 实现如下三个接口: /**********...博文来自:NYS001的专栏

  有限状态机(finite state machine)是一个数学概念,如果把它运用于程序中,可以发挥很大的作用。它是一种协议,用于有限数量的子程序(状态)的发展变化。每个子程序进行...博文来自:Stay Hungry,Stay Foolish的专栏

本文链接:http://chapmanswifts.com/duotailuoji/126.html

上一篇:python中的多态

下一篇:c 逻辑题汇总