面向对象——三大特性(封装、继承、多态)
一、封装
目的:保护类,让类更加安全。
做法:让类里面的成员变量变为私有(即访问修饰符)的,做相应的方法或者属性去间接的操作成员变量
※访问修饰符
private 私有的 只能在该类中访问
protected 受保护的 只能在该类和它的子类中访问
public 公有的 在任何地方都可以访问
△封装成员方法来间接操作类里面的成员变量
例:
![](/assets/blank.gif)
![](/assets/blank.gif)
△使用成员属性来间接访问类里面的成员变量
定义变量的时候最好用_下划线开头
选中要做的成员变量右键→重构→封装字段(ctrl+r,e)
自动生成的代码不是成员变量也不是成员方法 是成员属性
造好之后可以通过成员属性操作成员变量
例:
![](/assets/blank.gif)
![](/assets/blank.gif)
构造方法(函数):
作用:造对象所要调用的方法,用来创建对象
每一个类都有一个构造方法,不写也有只不过看不到而已
特殊性:写法特殊 (方法名=类名;没有返回值)
执行时间特殊(创建对象时执行)
用途:可以对成员进行初始化
举个例子:
![](/assets/blank.gif)
![](/assets/blank.gif)
举个栗子:使用面向对象来求两个圆之间的面积
![](/assets/blank.gif)
函数重载:
函数重载需要的条件:函数名要相同,参数的个数或者参数的类型不同
this关键字:
虽然写在类里面,但不是属于类的,而是属于该对象的
一般来说在类里面 this关键字是可以省略的,但是如果有一个方法形参名字和成员名字重复,这时候再调用该对象里面的成员的时候需要加this关键字
is关键字: 判断变量是不是属于某个类型
例:if (y2 is Ren)
{
s = "是一个人";
}
else
{
s = "不是一个人";
}
as关键字: 转换类型(只能转换兼容类型,可以将子类对象转换为父类对象)
二、继承
子类可以继承父类的一切
特点:单继承 一个子类只能有一个父类 一个父类可以有多个子类
C#特殊点:所有类的祖先都是object
base关键字:在子类中代表父类对象,用法和this关键字相同
如果父类有构造方法,那么子类也要有构造方法,如果父类构造需要参数,那么子类构造也必须有相应的参数。
子类构造后面可以通过base调用父类的构造方法
public China(string m):base(m) {}
![](/assets/blank.gif)
sealed关键字:
密封类 该类不可以被继承
sealed class 类名
{
}
部分类:partial
可以将一个类拆分成多个部分,分别放在多个文件内
调用需要namespace相同,或用use引用
namespace 命名空间 相当于虚拟文件夹
partial class 类名 //拆分的类均加partial
{
}
三、多态
1.编译多态
函数重载
2.运行多态
概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候表现出的不同就称为多态
条件:必须要有继承 父类引用指向子类实例 子类必须对父类的方法进重写
里氏代换原则:如果有一个地方需要使用到父类对象,那么你可以将一个子类对象给他
![](/assets/blank.gif)
转载于:https://www.cnblogs.com/zhangwei99com/p/6751836.html
面向对象——三大特性(封装、继承、多态)相关推荐
- 深入理解Java面向对象三大特性 封装 继承 多态
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...
- Java面向对象三大特性(封装继承多态)解释及案例
文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...
- Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态
Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...
- Java面向对象三大特性之继承多态的预习笔记,are you ready? 面对疾风吧!
文章目录 继承(extends) super关键字 方法重写 instanceof关键字 abstract关键字 接口(interface) 多态 继承(extends) AextendsB A继承了 ...
- Python OOP:面向对象三大特性(封装、继承、多态)、类属性和实例属性、类方法@classmethod、静态方法@staticmethod、函数和类callable、__call__
一.面向对象三大特性 二.多态 定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果. 一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象 ...
- python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)
面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...
- 大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)
文章目录 面向对象三大特性之一继承(Inheritance) 一.列举案例说明 1.类是对对象的抽象
- java 面向对象多态_乐字节Java面向对象三大特性以及Java多态
以上就是本次学习的6大任务.我们依次来看. 1 Object类 Object类是所有Java类的根基类. 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类. cla ...
- java 面向对象三大特性之继承 万字详解(超详细)
目录 前言 : 一.为什么需要继承: 二.什么是继承(Warning : 篇幅较长)? 1.继承概述: 2.子类继承父类之后达到的效果 : ①如何使用继承? ②代码演示 : 3.继承的使用场景: eg ...
- C++面向对象三大特性——封装与信息隐蔽
4.1 封装(实现手段--class) 有意义的事物都可以抽象.在抽象类的时候不要想着代码是怎么实现,而是用自然语言去分析逻辑即可!否则极易出错. 4.1.1 封装的意义 封装是C++面向对象三大特性 ...
最新文章
- 混合云存储开启企业上云新路径--阿里云混合云备份容灾方案发布
- linux磁盘同步函数,Linux系统调用fsync函数详解
- 第五章 Mininet常用命令参数介绍
- oracle的function的语法,Oracle function语法
- MySQL InnoDB Engine--数据预热
- php自动关闭页面代码,HTML_下载完成后页面不自动关闭的方法,下载完成后页面不自动关闭的 - phpStudy...
- windows下如何编译 leveldb 1.5最新版
- Persistent Data Structures(可持久化的数据结构)
- 包含头文件的问题之1.7编程基础之字符串 24:单词的长度
- SVDchapter14 机器学习之利用SVD简化数据
- Centos下更新php
- 常用连接Linux的SSH工具、SFTP工具
- 读《PROSOSPEECH: ENHANCING PROSODY WITH QUANTIZED VECTOR PRE-TRAINING IN TEXT-TO-SPEECH》
- LM2596电路简析
- 几种微弱信号处理电路
- GEE实战4:利用GEE获取进行气温空间随机采样【随机采样】
- Power BI DAX: DAX生成日历表
- 【开学了】整理各种常用功能的实现 | 小游戏源码分享
- Python直男作死篇:生日蛋糕小游戏
- 关于maya修改浏览器问题
热门文章
- ko.js循环绑定值问题(工作遇见)
- 彻底剖析C# 2.0泛型类的创建和使用
- gulp错误GulpUglifyError: unable to minify JavaScript解决
- [zt] HTTP 协议及其POST与GET操作差异 C#中如何使用POST、GET等
- c语言写一元一次函数图像,一元一次函数练习题带答案.doc
- mysql复制表原理_MySQL 主从复制原理与实践详解
- html中展开的小箭头,HTML5 移动网页应用中的展开式标签(带上下指示箭头)
- vue 第二天(常用指令及插值语法)
- android 5.0 qq状态栏颜色,Android 沉浸式状态栏(QQ5.0透明状态栏的效果)
- Java I/O系统之Object流