一、封装
每个对象包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来进行自己的操作。将方法、属性、字段包装在类中,通过实例化类来生成对象。
封装的好处:
1、好的封装能减少耦合
2、类内部的实现可以自由修改
3、类具有清晰的对外接口
封装就像建房子,类就是房子,属性是门窗,字段是房子里的东西,方法是人的行为。属性对字段有保护作用,防止字段被随意的修改或读取。
二、继承
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
总结:
1、子类具有父类非private的属性和方法
2、子类可以扩展父类没有的属性和方法
3、子类可以重写父类的方法
继承的缺点:子类和父类具有强耦合性。
当两个类具有“is-a”关系时,适合用继承;当两个类具有"has-a"关系时,不适合用继承,比如,胳膊不适合继承自人。
三、多态
多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。这就意味着虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
总结:
1、子类可以以父类的身份出现 (使用父类对象的地方都可以用子类来代替)
2、子类在工作时以自己的方式来实现
3、子类以父类的身份出现时,子类特有的方法和属性不能使用
多态的实现方式:
将父类的成员(除了字段外的其他成员,包括方法、属性、事件、索引器)声明为虚拟的:在该成员返回值类型之前加virtual关键字(虚方法可以有自己的实现);子类通过overrid(覆写)将父类实现替换为自己的实现。