【封装】
1.将类的属性进行私有化处理,不允许外部程序直接访问。并对外提供统一的方法,设置和读取私有属性。
2.实现访问控制,限制属性访问。
优点:只能通过规定的方法访问数据,方便在方法中加入控制语句,防止不合法赋值。
3.除了属性的封装之外,将需要重复使用的代码提取到方法中加入控制语句,防止不合法赋值。
public class Demo01_Test {
private String person;

public String getPerson() {return person;
}public void setPerson(String person) {this.person = person;
}

}

【继承】

1.子类继承父类使用extends关键字
2.不能继承父类的私有属性。
3.子类中访问父类成员需要使用super关键字。super.name
super.属性 访问父类属性
super.方法 访问父类方法

如果,子类中没有同名的属性和方法覆盖父类,则依然可以直接使用this。属性调用从父类中继承的非私有属性。
但是,如果子类中重写了与父类同名的属性:this.属性访问的是本类;super.属性访问的时父类属性。

在子类的构造函数中使用super();调用父类构造。而且super()函数必须在子类构造的第一行。
注意:即使使用super关键字也不能访问父类的私有属性和私有方法。

private 本类
friendly(默认)本类 本包
protected 本类 本包 非同包子类
public 本类 本包 非同包子类 其他任何包

注意:protect在非同包子类中只能通过子类对象访问,不能直接调用或通过父类对象访问。

父类属性》》父类构造》》》子类属性》》子类构造

在java中继承只能单继承。但可以多层继承。
public class test1(){}
public class test2 extends test1(){}
public class test3 extends test2(){}

【多态】
1.同一种事物,由于条件不同展示出不同的结果,叫做多态。
例:
英国人说英国话,中国人说中国话,不叫多态。
同样是人,有人说中华,有人说或英国华,这交多态

 2.程序中的多态:同一个引用类型,由于使用不同的对象实力,而执行不同的操作。Chinese c = new Chinese();  c.say();English e= new English();   e.say();英国人说英国华,中国人说中国话,这不叫多态。Person p = new Chinese();   p.say();Person p = new English();   p.say();同样是人,有人说中国话,有人说英国华,这就是多态。[实现多态的条件]1.子类继承父类。2.子类重写父类的方法。3.父类引用指向子类对象。//保证:同一个父类引用类型,用不同的子类实现不同的方法。【父子类转型】[向上转型]子类向父类转,自动转换。o Person p=new Chinese();特点:绝对安全。子类独有的属性和方法将会丢失。只能调用父类中存在的属性和方法。如果父类方法不是抽象方法,调用时执行的方法体依然是子类的。应用:多态中父类引用指向子类对象。[向下转型]父类向子类转:强制转换。Person p=new English();Chinese c =()Chinese p;//ClassCastException  类转换异常:因为p不是Chinese的实例,强转会造成类转换异常。Person p=new Chinese();Chinese c =()Chinese p;//ClassCastException  因为p是Chinese的实例,可以强制转换。[转换异常解决方法]:经常出现类转换异常。用instanceof检测父类引用是不是子类的实例。if(p instanceof Chinese){Chinese c =(Chinese) p;

转载于:https://www.cnblogs.com/dadada-jiasheng/p/8750025.html

关于面向对象(OOB)的一些理解。主要是封装、继承、多态。相关推荐

  1. 面向对象和面向过程的区别以及封装继承多态的优缺点

    面向对象和面向过程的区别: 1.思路不同 2.特点不同 3.优势不同. 面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了:而面向对象是将构成问题的事物,分解 ...

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

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

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

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

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

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

  5. 面向对象 编程及面向对象三大属性:封装 继承 多态

    面向对象 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构. ...

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

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

  7. python--编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音------使用类的封装继承多态的问题/使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

    编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音 ------使用类的封装继承多态的问题 class Instrumnet():#乐器类def make_sound(self):pa ...

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

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

  9. 第九课(面向对象):封装 继承 多态

    一.面向对象概念:根据模板(创建一个类)并实例化 这个思路就叫面向对象 二.使用面向对象编程好处: 可以重复使用(实例化类) 容易修改(只用修改类的模板) 三.面向对象的特点: 封装 继承 多态 类名 ...

  10. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

最新文章

  1. usaco Cow Pedigrees
  2. 校招社招必备核心前端面试问题与详细解答
  3. 【深度学习】引用次数在15000次以上的都是什么神仙论文?
  4. boost::empty_value的实例
  5. xml+javascript实现简单图片轮换
  6. 访问地图http://clustrmaps.com/zh/admin/action.php
  7. java 获取 正在执行的方法名
  8. Navicat Premium11连接Oracle出现ORA-28547:connection to server failed
  9. 基于51单片机的智能时控开关设计
  10. 为cfree5 配置舒心的编译环境
  11. php学习笔记-4.登录超时的设置
  12. 百度地图语音导航开发
  13. 如何根本上解决屎山代码的问题
  14. ORACLE介质管理库MML
  15. java可以用数组存爬虫数据么_网络爬虫文件存取(TXT,JSON,CSV)特点与用法
  16. 怎么用c语言编辑出天依蓝,我天依蓝
  17. RIP1实验1(实现不同路由器 不同PC机之间的通信)
  18. Mysql数据库管理工具简介
  19. 计算机公司职业体验报告高中,高中生寒假社会实践职业体验感悟
  20. 3dmax和python哪个好学_C4D和3DMAX哪个好?

热门文章

  1. 【PC攻略】炎炎夏日,让你的显卡风扇不再“偷懒!”
  2. Linux 系统 /var/log/journal/ 垃圾日志清理
  3. 撤销 git rebase
  4. 阿里云账号注销踩坑实践记录
  5. 最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))
  6. PMP备考错题集-模拟题二
  7. MIPI屏上电时序问题
  8. 期刊如何不分栏添加项目来源
  9. Github精选:本周10大热门项目
  10. java怎么使用sni,如何设置使用SNI提供两个SSL证书的Tomcat?