封装

所谓封装就是访问权限控制,不允许调用者直接访问类的属性,使用private修饰,将属性藏起来

此时若创建对象,直接修改属性值,则会报错

想要对属性进行读写则需要在类中添加get/set方法

此时就可以进行属性的读写了

java中的访问权限共4种,private、default(默认修饰符)、protected、public,他们的作用域如下:

继承

继承是面向对象语言一个重要的部分,本质就是代码的复用,防止重复代码的多次书写,当一个类继承另一个类时,子类会拥有父类中的代码,但不是所有都能够继承,private修饰的内容、不在同一个包时的默认修饰符的内容以及构造方法

接下来用一个例子来说明一下

父类Pet中有属性 name 和 age 和方法 eat 和sleep

子类Cat使用extend关键字继承了父类Pet,中间什么都没写

但是Cat类可以使用Pet类中的属性和方法

多态

多态是指同一个行为具有多个表现形式,多态的使用有三个条件

继承
重写父类方法
父类引用指向子类对象

多态有两种表现方式,父类作为方法的参数,父类作为方法的返回值

接下来用一个例子来说明一下
子类Cat继承父类Pet,并且重写了Pet类中的eat与sleep方法,

此时注意到创建对象时 Pet pet =new Cat();,Pet类型的引用指向了Cat的对象,

并且由于重写了Pet中的方法,调用的eat与sleep方法是子类Cat中的返回值

Java的封装继承多态简介与实例相关推荐

  1. (十)Core Java 面向对象(封装,继承,多态,接口) -02 (96)

     目录 :        24 ). 面向对象(聚集关系) 25 ). 面向对象(子父类中变量的特点) 26 ). 面向对象(子父类中函数的特点-覆盖) 27 ).  面向对象(子父类中构造函数的特点 ...

  2. c语言编程 菲薄拉,C语言设计模式-封装-继承-多态

    快过年了,手头的工作慢慢也就少了,所以,研究技术的时间就多了很多时间,前些天在CSDN一博客看到有大牛在讨论C的设计模式,正好看到了,我也有兴趣转发,修改,研究一下. 记得读大学的时候,老师就告诉我们 ...

  3. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

  4. Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态

    Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...

  5. 大数据笔记8—java基础篇4(面向对象-封装-继承-多态)

    面向对象 一.面向对象 1.面向过程 1.2.举例 1.3.总结 二.面向对象 1.简述 2.举例 3.思想特点 2.1.类的定义格式 2.1.1.简述 2.2.2.格式 2.3.3.示例 三.类的使 ...

  6. 小白理解——封装继承多态

                                      一.封装 是什么:首先是抽象,把事物抽象成一个类,其次才是封装.对外表示为一个对象,隐藏对象的属性和动作实现的细节,仅对外公开接口. ...

  7. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  8. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  9. 白话文带你了解 封装 继承 多态

    这里讲的仅仅是带你理解 封装 继承 多态 染好您可以移步去别的文章学习具体的实现 (只是个人理解 您可以不爱,请别伤害哦!) 首先你要知道 java是面向对象的,说白了就是我拿你当个人,请认清你的地位 ...

最新文章

  1. iOS Base64转码(使用ios7系统自带编码库 和 GMTBase64 两种方式)
  2. Apache Camel 2.12 –支持后退,以减少较积极的轮询路线
  3. 使用 vue-i18n 切换中英文
  4. 但自去年封测后的cqbgbbs
  5. java作业 大蛇丸的召唤术 万蛇罗之阵 类与对象的演练
  6. 并查集——家谱(洛谷 P2814)
  7. HTML、CSS --chrome书签整理
  8. HALCON标定板简介
  9. 卸载oracle9i精简版,oracle9i精简客户端|oracle9i客户端精简版下载_红软基地
  10. win10计算机管理看不见蓝牙,win10系统蓝牙不见了的解决方法
  11. flask-mail扩展基本使用
  12. c语言声音控制大小,C语言 如何将系统音量级别设置为从0到100的标量?
  13. 分位数(理解层面解答)
  14. Datawhale组队学习周报(第025周)
  15. 医学图像分析的发展历史
  16. 2022寒假---冲冲冲~
  17. 华为路由交换由浅入深系列(二):静态路由、浮动路由、默认路由配置以及华为路由协议优先级总结
  18. vmware和hyper-v的一个坑
  19. Solving environment: failed ResolvePackageNotFound: - ld_impl_linux-64==2.34=h53a641e_4
  20. php画网络拓扑图,jtopo js插件绘制网络拓扑图

热门文章

  1. RGB565,RGB555, RGB888,RGB32转换
  2. 让我受益终生的六个字:道、法、术、器、志、势
  3. js中appendChild()方法
  4. 基于Eureka服务治理的高可用性注册中心搭建
  5. el-dialog的宽度修改
  6. Web全栈~18.jQuery
  7. 集线器,路由器,交换机之间的区别
  8. LNK2001LNK2019
  9. 配置线在计算机端 使用什么端口,交换机怎么配置?这几种方式供你使用!
  10. c语言双字节异或,C语言 按位异或实现加法