关于面向对象(OOB)的一些理解。主要是封装、继承、多态。
【封装】
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.思路不同 2.特点不同 3.优势不同. 面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了:而面向对象是将构成问题的事物,分解 ...
- python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态
六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...
- 大数据笔记8—java基础篇4(面向对象-封装-继承-多态)
面向对象 一.面向对象 1.面向过程 1.2.举例 1.3.总结 二.面向对象 1.简述 2.举例 3.思想特点 2.1.类的定义格式 2.1.1.简述 2.2.2.格式 2.3.3.示例 三.类的使 ...
- 小白理解——封装继承多态
一.封装 是什么:首先是抽象,把事物抽象成一个类,其次才是封装.对外表示为一个对象,隐藏对象的属性和动作实现的细节,仅对外公开接口. ...
- 面向对象 编程及面向对象三大属性:封装 继承 多态
面向对象 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构. ...
- python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)
面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...
- python--编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音------使用类的封装继承多态的问题/使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息
编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音 ------使用类的封装继承多态的问题 class Instrumnet():#乐器类def make_sound(self):pa ...
- Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态
Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...
- 第九课(面向对象):封装 继承 多态
一.面向对象概念:根据模板(创建一个类)并实例化 这个思路就叫面向对象 二.使用面向对象编程好处: 可以重复使用(实例化类) 容易修改(只用修改类的模板) 三.面向对象的特点: 封装 继承 多态 类名 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
最新文章
- usaco Cow Pedigrees
- 校招社招必备核心前端面试问题与详细解答
- 【深度学习】引用次数在15000次以上的都是什么神仙论文?
- boost::empty_value的实例
- xml+javascript实现简单图片轮换
- 访问地图http://clustrmaps.com/zh/admin/action.php
- java 获取 正在执行的方法名
- Navicat Premium11连接Oracle出现ORA-28547:connection to server failed
- 基于51单片机的智能时控开关设计
- 为cfree5 配置舒心的编译环境
- php学习笔记-4.登录超时的设置
- 百度地图语音导航开发
- 如何根本上解决屎山代码的问题
- ORACLE介质管理库MML
- java可以用数组存爬虫数据么_网络爬虫文件存取(TXT,JSON,CSV)特点与用法
- 怎么用c语言编辑出天依蓝,我天依蓝
- RIP1实验1(实现不同路由器 不同PC机之间的通信)
- Mysql数据库管理工具简介
- 计算机公司职业体验报告高中,高中生寒假社会实践职业体验感悟
- 3dmax和python哪个好学_C4D和3DMAX哪个好?