文章目录

  • 一、封装性
    • 1.针对属性的封装性
    • 2.针对方法的封装性
    • 3.权限修饰符的大小关系
    • 4.具体的权限范围
  • 二、继承性
    • 1.继承性的好处
    • 2.子类和父类的关系
  • 三、多态性
    • 1.多态性的理解
    • 2.何为多态性
    • 3.多态的使用
    • 4.向下转型
    • 5.instanceof关键字

一、封装性

封装性就是将对象内部的复杂性隐藏起来,只是对外部公开简单的接口,便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,就是把该隐藏的隐藏起来,该暴露的暴露出来。

1.针对属性的封装性

将类的属性设为私有的(private),并提供set或者get方法。此时,针对属性就体现了封装性。

2.针对方法的封装性

不对外暴露的私有方法

3.权限修饰符的大小关系

private < 缺省 < protected < public

4.具体的权限范围

二、继承性

1.继承性的好处

①、减少了代码的冗余,提高了代码的复用性
②、便于功能的扩展
③、为多态性的使用提供了前提

2.子类和父类的关系

①、一旦子类A继承了父类B以后,子类A中就获取了父类B中声明的所有属性和方法(特别的:父类中声明为private的属性或者方法,子类继承父类以后,仍然认为子类继承了父类中的私有结构,只是因为封装性的影响,使得子类不能直接调用父类的私有结果。)
②、子类继承父类以后,还可以声明自己特有的属性或者方法,用来实现功能的拓展。
③、格式:class A extends B

注意点:

①、一个类可以被多个类继承。
②、一个类只能有一个父类。
③、子类直接继承的父类为:直接父类、 间接继承的父类:间接父类(理解为爷爷类)。

三、多态性

1.多态性的理解

一个事物的多种形态

2.何为多态性

父类的引用指向子类的对象。
举例:

Person p = new Man();

这对Man来说也叫做向上转型

3.多态的使用

虚拟方法调用:有了对象的多态性之后,我们在编译期,只能调用父类中声明的方法,但是在运行期,我们实际执行的是子类重写父类的方法。(多态对属性不管用)

4.向下转型

有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法的,但是由于变量声明为父类类型,导致编译时,只能调用父类中声明的属性和方法。子类特有的属性和方法不能调用。如何才能调用子类特的属性和方法?使用向下转型。
向下转型后,就可以使用子类特有的方法和属性了。

5.instanceof关键字

在向下转型的过程中,有可能会出现 ClassCastException 的异常,所以在转型之前,使用 instanceof来对该类进行判断。
举例:

if(a instanceof A){// 判断对象a是否是类A的实例,如果是返回true 否则返回 false
A a = (A)a;//将对象a转为类A的对象
}

面向对象:封装性、继承性、多态性总结相关推荐

  1. 赵桐正 php,php面向对象-封装性

    一.封装性(使用private关键字修饰就实现了对成员的封装) 1.设置封装 例3-1: class Person{ private $name; //设置私有成员 function say(){ e ...

  2. 面向对象:封装性,继承性,多态性

    面向对象是一种符合人类思维习惯的编程思想.现实生活中存在各种形态的事物,这些事物之间存在各种各样的联系.在程序中使用对象映射现实中的事物,使用对象的关系描述事物之间的联系,这种思想就是面向对象. 文章 ...

  3. 面向对象的特点,封装性,继承性,多态性!

    1.面向对象程序设计有三大特点,分别是封装,继承,多态,接下来就介绍一下这三个特点,积累一下. 2.封装,封装是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是 ...

  4. Python基础学习——面向对象编程(第一讲:面向对象概述、面向对象三个基本特征(封装性、继承性、多态性)、类和对象(定义类、创建和使用对象、实例变量、类变量、构造方法、实例方法、类方法、静态方法))

    面向对象是Python最重要的特性,在Python中一切数据类型都是面向对象的. 1.面向对象概述 面向对象的编程思想是,按照真实世界客观事物的自然规律进行分析,客观世界中存在什么样的实体,构建软件系 ...

  5. 面向对象(详解):三大特征【封装性、继承性、多态性】

    目录 封装性 封装性的设计思想 Java规定的四种权限修饰符  继承性 继承性的好处 类继承语法规则 子类继承父类以后的特点 多态性(重要) 引用变量的两个类型 编译时类型 运行时类型 多态的应用举例 ...

  6. Java新职篇:多态性、封装性与继承性相互作用是什么?

    如果用得当,在由多态性.封装性和继承性共同组成的编程环境中可以写出比面向过程模型环境更健壮.扩展性更好的程序.精心设计的类层级结构是重用你花时间和努力改进并测试过的程序的基础,封装可以使你在不破坏依赖 ...

  7. java子类创建过程_JAVA入门小小白学习中ing(匿名对象、封装性、继承性、子类对象的创建过程、spuer关键字(用法一))...

    小小白慢慢学习中ing 第十二天 努力努力 本日内容(匿名对象.封装性.继承性.子类对象的创建过程.spuer关键字) 1.匿名对象 创建对象的语法:Person p1 = new Person(); ...

  8. C++设计模式-面向对象程序设计要点以及封装性特点

    目录 1.面向对象程序设计要点 2.单使用封装性的例子 1.面向对象程序设计要点 面向对象程序设计要注意什么: 注意3点: 1.可维护性: 2.可扩展性: 3.可复用性: 4.灵活性好: 注意:要尽可 ...

  9. java面向对象的特征封装_Java总结-Java面向对象的基本特征之一:封装性

    作者:nyist-tc-岑国玉 来源:牛客网 Java面向对象的基本特征之一:封装性 封装性: 1.封装性的目的:保护某些属性和方法不被外部所看见. //这里说一下自己学linux时老师教我这个封装类 ...

最新文章

  1. encodeURIComponent或者encodeURI 不用行不行?
  2. 用例子来彻底搞明白Virtual 和 非 virtual(C#)
  3. 最全的ASP.NET开源CMS汇总
  4. CSS中的选择器之类选择器和id选择器
  5. oracle服务器内存建议,Oracle内存分配建议
  6. Public DNS (公共域名解析服务)
  7. 计算机服务哪些不能关闭,Win7系统下哪些系统服务不能关闭
  8. 二、scrapy爬虫框架——scrapy构造并发送请求
  9. 为什么我从Mac切换到Linux
  10. 几点减几点怎么列算式_洁净室平面设计怎么做?洁净室施工做到这几点就对了...
  11. java读取txt文件---,java读取TXT文件的方法
  12. 一天看10000张黄图,鉴黄师的苦!!!
  13. 【目标检测】(10) Mosaic 数据增强方法,附Python完整代码
  14. 桌面计算机状态栏在哪,Win7任务栏在哪里 如何调整任务栏位置(图文)
  15. 10 个最佳 VSCode 插件,帮助你写出更优雅的代码
  16. 一,银行软件测试工作总结
  17. 软件开发与软件研发的区别
  18. 两款专业的远程桌面连接管理工具:RoyalTS 和 visionapp Remote Desktop (vRD)
  19. 解决 win10 桌面 资源管理器未响应
  20. Linux 内核源码中likely()和unlikely()

热门文章

  1. E往无前 | 人人在用的微信支付,腾讯云大数据ES如何让它低成本高可用?
  2. Selenium3 Python WebDriver API源码探析(19)加载FireFox用户配置文件
  3. C实现-统计子串在母串中出现的次数(具体)
  4. 随机微分方程(SDE)学习笔记
  5. Sui基金正在招聘亚太地区市场经理,期待您的加入
  6. 近期橡胶抓大放小的过程与思路 (2018-08-22 18:32:59)
  7. GPE监控预警系统-Prometheus 概述.md
  8. Java实现 LeetCode 551 学生出勤记录 I(暴力大法好)
  9. aiohttp mysql_python异步爬虫asyncio+aiohttp+aiomysql异步存入数据
  10. Hustoj 配合阿里云服务器搭建OJ平台步骤