首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【深入浅出C#】章节 5: 高级面向对象编程:接口和抽象类

面向对象编程(OOP)是一种软件开发的编程范式,它以对象作为程序的基本单位,通过封装、继承和多态等概念来组织和管理代码。核心概念包括类、对象、封装、继承和多态。 接口和抽象类是面向对象编程中的两个重要概念。它们都具有高度的抽象性和可扩展性,能够帮助我们设计和构建灵活、可维护的代码。接口定义了一组方法和属性的契约,用于描述对象的行为。它提供了一种标准化的方式,使得不同的类可以共享相同的行为,实现了代码的解耦和可替换性。 接口的重要性在于促进了代码的模块化和代码的重用,同时提供了灵活的设计和扩展能力。 抽象类是一种具有部分实现和部分抽象成员的类。它提供了一种基础框架,用于派生具体类。抽象类的重要性在于它定义了类之间的通用行为和属性,并且通过强制派生类实现抽象方法,确保了派生类的一致性。抽象类可以作为模板和基类,提供了代码的重用和继承的能力。 接口和抽象类的作用是提供了一种抽象层级的设计和编码方式,使得代码更加灵活、可扩展和可维护。它们促进了代码的模块化和重用,降低了代码的耦合度,同时也提供了良好的设计和扩展能力。对于大型项目和复杂系统的开发,接口和抽象类是非常重要的工具,能够帮助我们构建高质量的软件。

02

【深入浅出C#】章节 4: 面向对象编程基础:封装、继承和多态

封装、继承和多态是面向对象编程中的核心概念,它们对于构建灵活、可扩展和可维护的软件系统至关重要。 封装(Encapsulation)通过将数据和相关操作封装在一个类中,隐藏内部实现细节,并提供公共接口来与外部进行交互。封装有助于保护数据的完整性和安全性,同时提供了良好的抽象,使得代码更易于理解和使用。封装还可以支持代码的模块化和团队开发,各个模块之间可以独立开发和测试,提高了代码的可维护性和复用性。 继承(Inheritance)允许一个类继承另一个类的属性和方法,从而实现代码的重用和扩展。继承提供了代码的层次结构,使得相关的类可以组织在一起,并且可以通过继承实现代码的共享和统一的接口。继承还可以支持多态性,通过在子类中重写父类的方法,实现不同对象的不同行为。 多态(Polymorphism)允许同一操作在不同的对象上产生不同的行为。多态性提供了灵活性和扩展性,使得代码可以处理多种类型的对象,而不需要显式地针对每种类型编写不同的代码。多态性可以通过方法重写、方法重载和接口的使用来实现,它可以使代码更加灵活和可扩展,同时提高了代码的可读性和可维护性。

03

面向对象笔记「建议收藏」

一.概念 1.面向对象概念:世界万物皆对象。 2.对象的组成:两部分    a.成员属性 :对象的数据模型,用于描述对象的数据,又称为对象的属性,或者对象的成员变量。    b.成员方法:对象的行为模型,用于描述对象能够做什么事情,又被称为对象的方法。 3.对象的特点:         a.每个对象都是独一无二。         b.对象是一个特定的事物,他的职能是完成特定的功能。         c.对象是可以重复使用的。 4.什么是面向对象?面向就是编程的时候一直把对象放在心上。   面向对象编程就是 在编程的时候数据结构(数据组织方式)都是通过对象的结构进行存储 5.为甚魔使用面向对象?    对象的描述方式更贴合真实的世界,有利于大型业务的理解    在程序设计的过程中用对象的视角分析世界的时候,能够拉近程序设计与真实世界的距离 6.面向对象的实质:就是把生活中要解决的问题都用对象的方式进行存储(属性 方法)   对象与对象之间通过方法的调用完成互动(方法) 7.面向对象的基本思路:    a.识别对象     任何实体都可以被识别为一个对象    b.识别对象的属性     对象里面存储的数据被识别为属性     对于不同的业务逻辑,关注的数据不同,对象里面存储的属性也不同    c.识别对象的行为      对象自己属性数据的改变      对象和外部交互 7.面向对象的原则:高内聚低耦合    a.对象内部是高内聚的:该有的都有,不至于缺胳膊少腿      所有对象相关的内容都封装到对象内部      对象只负责一项特定的职能(投篮)    b.对象对外是低耦合的:相互之间依赖关系特别小,程序设计的更灵活,有利于对象的重用      外部世界可以看到对象的一些属性 二、基本实践 1.类的概念:        物以类聚,把具有相似特性的对象归类到一个类中        类定义了这些相似对象拥有的相同的属性和方法        类的对象称为类的一个实例(Instance)        类是相似对象的描述,称为类的定义,是该类对象的蓝图或者原型        类的属性和方法统称为类成员(重要)        类就是一个框架,对象就是把这框架塞满 2.类的实例化(instantiate):通过类定义去创建一个类的对象,类只有一个,可以实例化出多个对象   类的定义里面属性值都是空的,而对象的属性都有具体的值 三。高级实践   1.继承的好处:     a.父类里面定义的类成员可以不在子类里面重复定义,节约编程的时间和成本。     b.同一个父类的子类具有相同的父类定义的类成员,因此外部调用它们的时候可以一视同仁     c.子类可以修改和调整父类定义的类成员:我们成为重写overwrite,一旦子类修改了就按照子类修改后的功能执行     d.单继承原则:一个子类只能继承一个父类   2.面向对象的三种访问权限     public:公有的类成员,可以在任何地方被访问(定义该成员的类即自身,该类的子类,其他类)     protected:受保护的类成员,可以被其自身及其子类访问     private:私有的类成员,只能被自身访问   3.静态属性和静态方法的定义     静态属性定义时在访问控制关键词后面添加static关键词即可,静态方法同理。如 public static $president=’tom’;       public static function test(){}.     访问静态属性:类名::$president  #带 $ 符号 。在类定义中使用静态成员时,用self(或static)::$president     访问静态方法:类名::test();     在类定义外部访问静态属性时,我们使用类名::类的静态成员(成员属性,成员方法)。     使用parent访问父类中的静态成员。     在类的静态方法中不能使用$this调用类的非静态成员。     注意:6个       a.静态属性用于保存类的公有数据       b.静态方法里面只能访问静态属性       c.静态成员不需要实例化对象就可以访问       d.类的内部可以通过static或者self关键词访问自身静态成员       e.可以通过parent关键词访问父类的静态成员       f.可以通过类名称在类定义外部访问静态成员   4.final关键词     在子类中编写跟父类中方法名称完全一致的方法,可以完成对父类中方法的重写(overwrite)     a.对于不想被任何类继承的类可以在class之前添加关键字final     b.对于不想被子类重写(修改)的方法,可以在方法定义的前面加final   5.数据访问     a. 用parent关键字可以访问父类中被子类重写了的方法

03

ORM中的继承关系映射全解——单表继承体系、一实体一具体表、一实体一扩展表、接口映射

实体继承是基于OO和关系型数据库软件系统设计中的一个重要主题。本文通过基于NBear的实例解析ORM中的实体继承体系映射的方方面面。 本文涉及的内容包括: 1. 单表继承体系 2. 一实体一具体表 3. 一实体一扩展表 4. 接口实现映射vs基类继承映射 1. 单表继承体系 所谓单表继承体系就是用一张数据库表存储整个继承体系中的所有实体的数据。单表继承体系适合那种继承体系中实体数目相对较少,总记录数相对较少,子类对父类的属性扩展也相对较少的情形。  单表继承体系优点是读/写继承体系中的每个实体的数据,都只需

09

C#中抽象类与抽象方法的作用与实例

在C#中,允许把类和方法声明为抽象类与抽象方法,具体的声明方法是在类名或方法名前加上abstract关键字。 那么我们什么时候应该用抽象类呢? 如果一个类设计的目点是用来被其它类继承的,它代表一类对象的所具有的公共属性或方法,那个这个类就应该设置为抽象类。 抽象类与其它的类有什么区别呢? 抽象类是不能够被实例化的。如果一个类中包含有抽象方法,那么这个类一定要声明为抽象类。同时,抽象方法一定需要在子类中重写,让抽象方法成为一个具体的实实在在的方法。 比如,我们要声明一个动物类animal,然后有其它的类Cat(猫),Dog(狗)等具体的类来继承它,那么这个动物类就应该声明为抽象类。因为animal只是一个名词,不代表任何具体的对象,它只是代表所有动物所拥有的共同特征,所以animal类是根本不可能被实例化的。同时,如果所有动物都必须声明"叫"这样一个方法的话,那么,我们可以在animal类中声明一个抽象方法shout(),因为抽象方法是必须在子类中重写的,所以这就限制了所有继承自animal类都必须重写shout()方法。 实例: 声明Animal类

01
领券