C# 之面向对象基础总结
2012-12-25 19:45
246 查看
学完C#视频后,对面向对象这个概念有了更深的体会。
那么什么是面向对象呢,什么样的程序是面向对象的设计呢,要明白这些首先要了解面向对象的三大特性:封装、继承、多肽。
总结图:
一:封装
是把客观事物封装成抽象的类
如:Cat类
猫的属性name和Shout()的方法,都在Cat这个类中。
表面上看,Cat 类用 { }将它的属性和方法括在了一起,其实是对象进行封装。就好比我们常用的笔记本电脑,将很多零件封装在了内部,我们用电脑的时候,只需要按一下开关就可以拉,不用再管他们内部的操作。
二:继承
是类间的关系,被继承的类是基类,继承的类为派生类。
在C#中继承的关键符号是 “:”,如Cat 类继承Animal 类
使用继承将子类公共部分放到父类,不仅可以减少代码重复,而且修改方便。
三:多肽
多肽表示不同的对象有相同的动作,但是通过他们自己的实现代码执行
多肽实现:1,将所要实现的方法定义成父类中的虚方法;2,子类使用override实现
具体如下:
总结:
1,属性是封装对象的数据,方法是对象的行为,在代码中,属性后面不带括号,方法带括号。
2,判断两个类间是不是继承关系,就判断满不满足“什么什么是什么”,如“狗是动物”。
3,抽象类一定是用来继承的,且实例化没有意义。
4,重载是两个或者多个构造函数,重写是实现父类中的虚方法(virtual /override)。
5,在基类中定义的虚方法有方法体,实现的时候是重写,有选择的,而抽象方法没有方法体,必须别子类重写。
那么什么是面向对象呢,什么样的程序是面向对象的设计呢,要明白这些首先要了解面向对象的三大特性:封装、继承、多肽。
总结图:
一:封装
是把客观事物封装成抽象的类
如:Cat类
class Cat //定义Cat类 { private string name; //声明Cat类的私有字符串变量, 是内部字段 public Cat() //构造方法 { this.name = " "; } public Cat(string name) //将构造方法重载 { this.name = name; } public string Shout() //Shout 猫叫方法 { return "喵"; } }
猫的属性name和Shout()的方法,都在Cat这个类中。
表面上看,Cat 类用 { }将它的属性和方法括在了一起,其实是对象进行封装。就好比我们常用的笔记本电脑,将很多零件封装在了内部,我们用电脑的时候,只需要按一下开关就可以拉,不用再管他们内部的操作。
二:继承
是类间的关系,被继承的类是基类,继承的类为派生类。
在C#中继承的关键符号是 “:”,如Cat 类继承Animal 类
class Cat : Animal //Cat 类继承Animal 类 { public Cat() : base() //子构造方法需要调用父类同样的构造方法用base关键字 { } public Cat(string name) : base(name) { } }
使用继承将子类公共部分放到父类,不仅可以减少代码重复,而且修改方便。
三:多肽
多肽表示不同的对象有相同的动作,但是通过他们自己的实现代码执行
多肽实现:1,将所要实现的方法定义成父类中的虚方法;2,子类使用override实现
具体如下:
class Animal { public virtual string Shout() //定义了一个Shout的虚方法,可以子类被重写 { return ""; } } class Cat : Animal //Cat 类继承Animal { public override string Shout()//对父类中的虚方法重写,得到自己的Shout方法 { return "喵"; } } class Dog : Animal { public override string Shout() { return "旺"; } }
总结:
1,属性是封装对象的数据,方法是对象的行为,在代码中,属性后面不带括号,方法带括号。
2,判断两个类间是不是继承关系,就判断满不满足“什么什么是什么”,如“狗是动物”。
3,抽象类一定是用来继承的,且实例化没有意义。
4,重载是两个或者多个构造函数,重写是实现父类中的虚方法(virtual /override)。
5,在基类中定义的虚方法有方法体,实现的时候是重写,有选择的,而抽象方法没有方法体,必须别子类重写。
相关文章推荐
- C#基础总结之七面向对象知识点总结1
- C#总结(面向对象基础)中
- C#基础总结之八面向对象知识点总结-继承与多态-接口
- C#基础加强第二天总结--面向对象2及字符串
- C#视频总结(面向对象基础)上
- 黑马程序员_C#面向对象知识总结3
- Java 面向对象基础 以及进阶知识 总结
- C#基础系列(8)-- 第三部分 面向对象相关 -- 类与结构(1)
- 黑马程序员学习log第九篇基础知识:JAVA的面向对象之正则表达式及反射总结
- 黑马程序员 C#面向对象基础知识点
- .Net学习笔记4-C#面向对象基础1 类和属性
- C#面向对象基础
- Java基础针对自己薄弱环节总结04(面向对象多态)
- 黑马程序员——C#面向对象基础复习日记
- C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账
- 疯狂java讲义的笔记总结1: 语法和面向对象基础
- Java基础、面向对象总结
- 黑马程序员----java基础面向对象总结
- Java基础(五)OOP面向对象之(三) 面向对象思想总结
- C# 面向对象总结 (十二大特性)