6.封装

封装就是对外部类隐藏成员或变量。我已经说过房子的保安仅仅被限制在房子的入口处,不需要知道屋内发生了什么。房主对保安隐藏了屋内所发生的任何事,以便更安全。隐藏和限制就被称为封装。

例如我们有两个类,一个是”Houseclass”另一个是”houseSecurityClass”。

我们可以看到所有的成员都包裹在公开的类houseSecurityClass里,所以Houseclass类的对象能够访问 houseSecurityClass里的任何成员。但是Houseclass有2个成员,一个public一个private。private类不能够被外部的类所访问。

 1 public class houseSecurityClass
 2     {
 3         public int noofSecurity;
 4         public String SecurityName = String.Empty;
 5     }
 6
 7     public class Houseclass
 8     {
 9         private int noofLockerinHosue = 2;
10         public string OwnerName = String.Empty;
11     }

7.抽象化

抽象就是显示和分享一些共同的信息给用户。接着讨论屋子的例子。屋子里有仆人,能够进入任何房间,做清洁和其他的事情。房主可以给仆人所有或者部分进入卧室的权限。我们可以看出,程序中private的成员和方法都是仆人所没有的权限,而public的成员和方法都是仆人所拥有的权限。

 1 public class HouseServerntClass
 2     {
 3
 4         private int SaftyLoackerKeyNo = 10001;
 5         public String roomCleanInstructions = "Clean All rooms";
 6
 7             private void saftyNos()
 8             {
 9                 Console.WriteLine("My SaftyLoackerKeyNo is" + SaftyLoackerKeyNo);
10             }
11
12         public void roomCleanInstruction()
13         {
14              Console.WriteLine(roomCleanInstructions);
15         }
16
17     }

8.继承

继承就是为了代码的重用。在protected internal访问修饰符章节我们已经看到继承的例子。继承就是在派生类中能够访问父类的所有公开的方法和变量等。

单层次继承--一个派生类只继承一个父类。

 1 public class baseClass
 2     {
 3         private void privateMethod()
 4         {
 5             Console.WriteLine("private Method");
 6         }
 7
 8         public void publicMethod()
 9         {
10             Console.WriteLine("This Method Shared");
11         }
12     }
13     public class DerivedClass : baseClass
14     {
15         static void Main(string[] args)
16         {
17             DerivedClass obj = new DerivedClass();
18             obj.publicMethod();
19             //obj.privateMethod(); //This will be error as private method can not be accessed in Derived Class
20         }
21
22     }

注意:有时候大家可能不清楚什么是基类,什么是派生类。基类就是超级类,派生类就是继承了基类。

下面就是一个继承的例子,基类GuestVist,派生类HouseOwnerClass。派生类HouseOwnerClass继承自GuestVisit类。

 1 HouseOwnerClass.Here HouseOwnerClass class inherits the base class of GuestVist
 2 class GuestVist
 3     {
 4         public void Guestwelcomemessage()
 5         {
 6             Console.WriteLine("Welcome to our Home");
 7         }
 8         public void GuestName()
 9         {
10             Console.WriteLine("Guest name is: Shanu");
11         }
12
13     }
14      class HouseOwnerClass : GuestVist
15     {
16         static void Main(string[] args)
17         {
18             HouseOwnerClass obj = new HouseOwnerClass();
19             obj.Guestwelcomemessage();
20             obj.GuestName();
21             Console.ReadLine();
22         }
23     }

多层次继承--不止一个派生类的例子。下面的例子中我们可以看到baseclass派生了DerivedClass1,而DerivedClass1派生了DerivedClass2。因此DerivedClass2可以访问DerivedClass1和baseclass两个类的公开成员和方法。

 1 public class baseClass
 2     {
 3         private void privateMethod()
 4         {
 5             Console.WriteLine("private Method");
 6         }
 7
 8         public void publicMethod()
 9         {
10             Console.WriteLine("This Method Shared");
11         }
12     }
13     public class DerivedClass1 : baseClass
14     {
15         public void DerivedClass1()
16         {
17             Console.WriteLine("Derived Class 1");
18         }
19     }
20     public class DerivedClass2 : DerivedClass1
21     {
22         static void Main(string[] args)
23         {
24             DerivedClass2 obj = new DerivedClass2();
25             obj.publicMethod();
26             obj.DerivedClass1();
27             //obj.privateMethod(); //This will be error as private method can not be accessed in Derived Class
28         }
29
30     }

多重继承:

.Net支持多重继承吗?NO

一个类不能支持多重继承。

什么是多重继承?多重继承就是 一个类继承多个基类。就是一个派生类继承多于1个基类。

c#使用了多重继承会发生什么?

继续来看屋子的实例。下面的例子中我们有一个派生类ouseOwnerClass,两个基类“GuestVist” 和“FriendsandRelationsClass”.

现在家里来了两个人一个客人,一个朋友。因此我们写的3个类中派生类继承了2个类。当我用c#写一个多重继承,编译器会给出警告信息但是可以执行代码。警告信息是“Expected and interface”。

那么怎样才能支持多重继承呢?

答案是使用接口,接口支持多重继承。

~~~~今天就到这里,洗澡睡觉咯

译:C#面向对象的基本概念 (Basic C# OOP Concept) 第二部分(封装,抽象,继承)...相关推荐

  1. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)...

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  2. 面试轻松讲清楚 Java 面向对象的问题与知识(类与对象,封装,继承,多态,接口,内部类...)

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  3. python(11)—— 面向对象编程基础(对象,类,属性,封装,继承,多态)

    把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化( ...

  4. 【总结记录】面向对象设计OOP三大特性(封装、继承、多态)、七大基本原则的理解(结合代码、现实实例理解)

    文章目录 一. 三大特征的理解 (1)封装 (2)继承 (3)多态 (4)面向对象.面向过程的对比 二. 七大基本原则的理解 (1)单一职责原则 (2)开放封闭原则(OOP 核心) (3)里氏替换原则 ...

  5. java继承封装英语怎么说,英语翻译深刻理解JAVA OOP编程,熟练于封装、继承、多态、抽象等JAVA面向对象特征的使用,对常用集合有较深理解,以...

    共回答了16个问题采纳率:87.5% Deep understanding of Java Object Oriented Programming. Able to use encapsulation ...

  6. 面向对象三大特征(封装、继承、多态)详解

    面向对象的三大特征 万物皆可归类,类是对于世界事物的高度抽象,不同的事物有不同的关系:一个类自身与外界的封装关系:一个父类与子类的继承关系:一个类和多个类的多态关系. 万物皆对象,对象是具体的世界事物 ...

  7. Python基础08 面向对象的基本概念

    Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程. 面向对象的最主要目的是提高程序的重复使用性.我们这么 ...

  8. 面向对象程序设计基本概念

    面向对象程序设计基本概念 重点: C++中的 多态 和 指针间接赋值 1): 多态的三个条件         a: 子类继承父类         b: 虚函数(虚表及虚表指针)         c: ...

  9. 在java面向对象编程中_谈一谈你对封装_继承_多态概念的理解_Java新职篇:面向对象编程的3个原则是什么?...

    原标题:Java新职篇:面向对象编程的3个原则是什么? 所有面向对象的编程语言都提供帮助你实现面向对象模型的机制,这些机制是封装,继承及多态性.现在让我们来看一下它们的概念. 封装 封装(Encaps ...

最新文章

  1. os.chdir用法
  2. Jasypt : 整合spring boot加密应用配置文件敏感信息
  3. jozj4010-我才不是萝莉控呢【哈夫曼树】
  4. [vue] 说说你对MVC、MVP、MVVM模式的理解
  5. 刚参加完阿里Java P6面试归来,6点面试经验总结!(含必考题答案)
  6. datagridview取消默认选中_C# WinForm 取消DataGridView的默认选中Cell 使其不反蓝
  7. docker 查看镜像_Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指!...
  8. 【Spark Summit EU 2016】Glint: Spark的异步参数服务器
  9. 毕业多年没稳定的收入...大龄转行做自动化测试,现在已经快年薪30W
  10. 数组指针和指针数组的区别(转)
  11. f分布表完整图a=0.01_基于时频分布和CNN的信号调制识别分类方法
  12. Endnote X6大客户版破解版+新功能介绍+视频介绍
  13. 使用pytorch实现LSTM自动AI作诗(藏头诗和首句续写)
  14. UnicodeTOGB,能够将Unicode串转换成GB码
  15. 求两个圆公切线的模板
  16. Linux中的yum是什么?如何配置?如何使用?
  17. 【顺序、分支、循环、子程序设计】—— 微机原理实验
  18. 科目二考试之倒车入库步骤
  19. Systrace 流畅性实战 2 :案例分析: MIUI 桌面滑动卡顿分析
  20. docker_相关操作

热门文章

  1. CAS单点登陆原理简介及环境搭建
  2. 大数据-操作HDFS的基本命令
  3. Linux内核调试的方式以及工具集锦
  4. 假期把技术书籍和焦虑放一边,我做了几天...
  5. Go 并发编程 — 深入浅出 sync.Pool ,最全的使用姿势,最深刻的原理
  6. 《Go语言程序设计》读书笔记(二)函数
  7. java作业_Java作业总结
  8. 【Win32 API学习】模拟键盘输入和鼠标输入
  9. Python XML解析
  10. Craigslist模式在中国如何复制?中国特色的差异化在哪里?,互联网营销