个人对面向对象的理解总结

简介:

之前伟哥问过我属性和变量的区别,今天在群里也遇到了个问这类的问题的,所以写下这博文纪录下我个人对继承、封装等这些的理解。

1.面向对象的3大特征:继承、封装、多态

1、继承

继承都熟悉 ,子类继承父类. 和生活中的继承类似。父类的东西有些可以继承(public、protect)有些是不可以继承(private)的.

这就有了public protect private类型的属性方法继承时的访问权限问题,同时也是封装的体现,包裹起来。又犹豫c# 、OC、java这些不支持多继承,所以就有了接口(oc协议)来实现多继承。

2.封装

封装就是把东西包起来,让外面看不到。想要知道内部的东西那就要通过一定的方法才能,不能随随便便的让别人看到。那怎么让看到内部的东西的?这就有了属性。属性将变量封装起来,通过get、set方法来访问变量。

3.多态

多态有运行时多态和编译时多态。

编译时多态主要通过重载来体现。重载有函数重载和运算符的重载。

运行时多态是通过重写、覆盖、继承、接口、抽象、虚方法体现等

 

这些对面向对象语言基本都应用,可能在一些语言中的叫法不一样,思想是一样的。比如oc中的协议, 由于OC中没有抽象类(含有一个抽象方法的类叫做抽象类),所以OC中的协议中的方法可以是可实现和必需实现。语法是基础,思想是灵魂。

相关文章
|
7月前
|
设计模式 Java C#
浅谈面向对象
浅谈面向对象
|
2月前
|
C语言 C++
【c++】什么是面向对象
【c++】什么是面向对象
【c++】什么是面向对象
|
9月前
对面向对象的认识(一)
对面向对象的认识(一)
39 0
|
4月前
|
机器人 Java 数据安全/隐私保护
理解-面向对象
理解-面向对象
27 0
|
6月前
面向对象《一》
面向对象《一》
16 0
|
10月前
|
C#
C#面向对象知识
C#面向对象知识
36 0
|
11月前
|
存储 Java 编译器
初步认识面向对象
初步认识面向对象
|
11月前
|
存储 搜索推荐 编译器
C++ 面向对象篇
C++程序在执行时,将内存大致分为四个区域; - 代码区:存放函数体的二进制代码,操作由系统管理 - 全局区:存放全局变量和静态变量以及常量 - 栈区:由编译器自动分配释放,存放函数的参数值(形参),局部变量等 - 堆区:由程序员分配和释放,若程序员不手动释放,系统在程序结束时自动回收
125 0
|
Java
面向对象(一)
面向对象基础
71 0
|
Java 关系型数据库 程序员
面向对象是什么
近两年设计了几个系统,不管是直接使用传统设计ER图,还是使用4C建模,但在做架构评审时,ER却都是重中之重,让人不得不深思,编程思想经过了一代代发展,为什么还在围绕ER,在远古时代,没有OO,没有DDD,但为什么延续至今的伟大软件也比比皆是 带着这个问题,需要回头看看,结构化编程为什么不行?面向对象因何而起,到底解决了什么问题? 《架构整洁之道》也特别介绍了面向对象编程,面向对象究竟是什么,大多从三大特性:封装、继承、抽象说起,但其实这三种特性并不是面向对象语言特有
116 0