黑马程序员技术交流社区
标题:
谁能把面向对象的继承、封装、多态给我说清楚啊?
[打印本页]
作者:
职业规划-蔡红微老师
时间:
2012-4-9 17:12
标题:
谁能把面向对象的继承、封装、多态给我说清楚啊?
谁能把面向对象的继承、封装、多态给我说清楚啊?
作者:
翁金鹏
时间:
2012-4-10 14:44
面向对象程序设计(Object-Oriented Programming—OOP)是目前占主流地位的编程技术,其变成思想就是将事物抽象成类和对象,由于对象具有自己的状态和行为,程序通过对象对消息的反映来完成特定的任务。
继承的概念
继承机制模仿了现实中IS-A关系(层次关系),如生物学界用界,门,纲,目,科,属,种来对生物进行分类,每一种分类都用若干特征来刻划,在每一个层次中,同一分类的生物具有共同的特征。
类继承,通过必要的说明能够实现某各类无需重新定义就拥有另一个类的某些属性和方法,一个新的类能继承原有类的基本特征。原有的类称为父类、超类(superclass)或基类,新派生的类称为原有类的子类或派生类。
在子类中包含父类的属性和方法,并可以增加新的属性和方法,这种子类继承父类的方式也称为类的派生(deriving)。
类的继承允许多层的继承关系,也就是子类也可以有它自己的子类,在下一层的继承关系中,原先的子类就变成了父类。
父类的基本特征可被所有子类所共享。
作者:
彭博文
时间:
2012-4-10 15:10
定义1:面向对象程序设计(Object-Oriented Programming—OOP),顾名思义,一种程序设计方法,当前主流语言设计方式之一。
定义2:用oop开发应用程序,其主要组成元素是对象。不关乎其它外在影响,相对于oop方法的本身。oop中用了类型的机制来描述对象的抽象体。
定义3:继承,看到首先应该从字面意思上理解。普通的继承概念,就像你继承了人类的体貌特征。在oop中继承也是应用这种关系,其是基于对象类型,也用于对象类型。我相信你更加深入会更加理解这个的。
定义4:封装,oop中的机制,或许机制比较晦暗,其实就是一种概念,就像你要搬家,房子里有一大推娃娃,对你都特别重要,你可以一个一个的带走,但是太浪费时间,你可以用一个类似箱子的容器装在一起。封装几乎如出一辙。
定义5:多态,oop中的机制,这个就懒得讲了。。
作者:
赵潮江
时间:
2012-4-10 16:58
继承的意思是一个类可以建立在另一个类的基础上,可以继承另一个类的属性和方法。我们把被继承的类叫做基类,通过继承产生的类叫做派生类(也可以叫做父类和子类)。继承的概念来源与现实的生活,比如汽车、轮船、火车飞机等就是继承于交通工具这个类,而汽车类中又可以派生出新的类,比如轿车、面包车等等。
引入继承可以让我们重用以前写过的代码,新编写的代码可以在原来的基础上继承而来。
在C#中继承的方式就是定义派生类。
在C#中,所有的类都是通过直接或间接地继承Object类得到的。
类的封装改变了用户传统的使用数据和代码的方式,它将方法和数据包含在一起构成一个独立的单元,可以通过设定单元内各个成员的的特性来控制对成员的访问。比如将一个字段定义为private,就可以防止外界直接访问这个字段。
封装一个类由两种做法:
1)为一个私有类定义公共读方法和写方法;
2)使用属性,用set和get访问器。
多态指的是定义具有不同功能但相同名称的方法或属性的多个类的能力。C#中的多态可以由虚方法实现。
对于非虚方法,其实现是不变的,无论由基类实例调用还是由派生类实例调用都是相同的;而虚方法的实现可以由派生类取代,取代的过程称为重写。重写可以取代从基类继承的虚方法,但原虚方法的可访问性不能改变,静态方法和非虚方法不能被重写。
基类 public virtual void Show( ) { ... }
派生类 public override void Show( ) { ... }
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2