当前位置: 首页 > news >正文

制作空间主页网站学做网站初入门教程

制作空间主页网站,学做网站初入门教程,在哪个网站注册公司,网站建设现状面向对象对象三(四)大特征:封装,继承,多态,(抽象)1_封装(1)封装是指将数据(属性)和行为(方法)组合在一个类中&…

面向对象对象三(四)大特征:封装,继承,多态,(抽象)

1_封装

(1)封装是指将数据(属性)和行为(方法)组合在一个类中,并对外部隐藏对象的内部实现细节

(2)封装的核心概念

  • 数据隐藏:将类内部数据设为私有,只通过公共方法访问

  • 实现隐藏:隐藏类的内部实现细节,只暴露必要的接口

  • 保护数据的完整性:通过方法控制对数据的访问和修改

(3)属性的封装:将字段设为私有的,利用属性控制字段的访问

(4)方法的封装:将方法写在类中,通过类的实例或者类名调用方法

(5)封装的好处:

  • 数据保护:防止外部代码直接修改对象内部的状态

  • 灵活性:可以修改内部实现而不影响使用该类的代码

  • 易于维护:将相关数据和操作组织在一起

  • 减少耦合:类之间通过明确定义的接口交互

  • 数据验证:可以在设置属性时添加验证逻辑

2_继承

(1)继承允许我们基于现有的类创建新的类,实现代码重用

(2)继承的特点:

  • 单继承:c#只支持单继承,一个类只能继承一个父类

  • 传递性:继承关系可以多层传递

  • 所有的类都继承自object:即使没有显示指定,所有的类都隐式继承自System.Object

(3)继承中的访问修饰符:

  • public:任何代码都可访问

  • protected:只有类内部和派生类可访问

  • private:只有类内部可访问(默认)

  • internal:同一程序集内可访问

  • protected internal:同一程序集或派生类可访问

(4)继承的基本语法:使用:

(5)子类的继承函数:当调用子类的构造函数(无参和有参)时,会先调用父类的无参构造,想调用父类的有参构造,需要子类的有参构造使用base(参数),调用父类的有参构造

3_多态

(1)多态:同一个行为具有不同的表现形式和能力

(2)多态的分类:

  • 编译时多态(静态多态):通过方法重载(Method Overloading)和运算符重载(Operator Overloading)来实现。

  • 运行时多态(动态多态):通过继承和接口,以及方法重写来实现

(3)静态多态在编译过程中,通过方法重载和运算符重载来实现,也成为静态绑定和早期绑定

动态多态在运行过程中,通过方法重写,隐藏方法来实现,也称之为动态绑定或者后期绑定

(4)方法重载:同一个函数名不同参数列表

(5)方法重写:

通过virtual和override关键字实现

public class Shape
{public virtual void Draw(){Console.WriteLine("绘制一个形状");}
}public class Circle : Shape
{public override void Draw(){Console.WriteLine("绘制一个圆形");}
}

通过new关键字实现

public class Shape
{public void Draw(){Console.WriteLine("绘制一个形状");}
}public class Circle : Shape
{public new void Draw(){Console.WriteLine("绘制一个圆形");}
}

4_接口

(1)接口:使用java,asp.net等编写的API接口。让其他人通过相应的请求协议(如:http/https)来访问。理解成“在接口服务器上定义多个方法,在客户端上调用这些方法,这样的一个过程,称为请求接口。

(2)C#中的接口:定义一套规则,其他类实现规则。规则===》锲约,合同。 接口必须实现,才能使用。接口也是多态性的表现。

5_类与方法

5.1 普通类:

(1)可以有实例成员,静态成员 实例字段 静态字段 实例方法 静态方法 实例事件 静态事件....不能由抽象方法

(2)访问普通类的成员的时候,要先确定是静态的还是非静态(实例的);静态 使用类名访问;非静态(实例的) 实例化对象访问

5.2 静态类

(1)普通类经过 stati 修饰之后 就会变成静态类

(2)静态类特点:

  • 静态类不能实例化,即不能new,访问静态类中的成员的时候,通过静态类本身

  • 静态类内部不能有非静态成员,只能由静态成员

  • 静态类不支持继承,不能继承其他类,也不能被其它类继承

  • 静态类中的构造函数必须是静态的,而且不能有访问修饰符

(3)静态类作用:封装工具类

5.3 抽象类

(1)抽象类和接口类似,都是为了制定一些规则,由子类去实现这些成员,而不是直接操作抽象类和接口

(2)能够被其他的类继承 也能继承其他的类 但是它里面的抽象方法不能实现

(3)不能实例 抽象类设计出来就是用来被继承的 和密封类是相对

(4)抽象类特点:

  • 抽象类使用abstract 修饰

  • 抽象类中可以实例成员,可以抽象成员 可以有静态成员 可以有虚方法

  • 抽象类不能实例化,抽象类定义了之后,一般不直接使用它,而是使用它的子类

  • 抽象类只有被继承,才有存在的意义

  • 继承抽象类的子类,必须实现抽象类中的抽象成员

5.4 密封类

(1)关键字 sealed,设计不让其他类继承,但可以继承其他类,密封类中能包含 实例方法 静态方法 不能包含抽象方法 虚方法 和密封方法

(2)特点

  • 不能被继承

  • 可以实例化

  • 可以有实例成员,静态成员,不能有抽象成员和虚成员

5.5 抽象方法,虚方法,密封方法

(1)抽象方法(abstruct):抽象方法 不能实现 必须等待子类继承后, 在子类中重写 override;先占个位置 不去实现 等待子类实现;"空壳"

(2)虚方法(virtual):和抽象方法类似 ;虚方法可以有方法体,而且在子类中 不强制重写;虚方法就是为了重写的 是虚拟的 先占位 业务逻辑也可以先写一点,将来在子类中重新实现业务逻辑;继承过来的虚方法 可以重写 也可以不重写

(3)密封方法(sealed override):sealed 修饰成密封方法,不想在后续的子类中重写;sealed 关键字应用在方法上的时候,必须和override 同时使用

必须是继承自父类的方法使用sealed override重写,并不希望后面的子类重写该方法

public sealed  override void SealedFn1(){base.SealedFn1();}
5.6 总结表格
特点\类型普通类静态类抽象类密封类
是否可以实例化
是否可以被继承
是否可以继承其他类
是否有普通成员
是否可以有静态成员
是否可以有抽象成员
是否可以有虚成员
http://www.dtcms.com/a/537193.html

相关文章:

  • 生命周期详解与实践
  • 【开题答辩过程】以《济南市济阳区智能蔬菜大棚管理系统》为例,不会开题答辩的可以进来看看
  • 比较好的网站开发团队有没有网站建设的教程
  • 基于昇腾支持的Llama模型性能测试:GitCode Notebook环境实践
  • 分频器介绍
  • wnmp搭建wordpress哪些网站seo做的好
  • [java] JVM 内存泄漏分析案例
  • Resource Hacker:强大的软件资源编辑器
  • 优化网站图片施工企业质量发展规划
  • 扁平化设计网站代码王者荣耀wordpress
  • 新能源汽车故障诊断与排除虚拟实训软件:赋能职业教育利器
  • 微硕WSD40190DN56G 40V N沟MOSFET:汽车48V电动尾翼“190A高速H桥核”
  • 汽车CAN总线系统深度解析:从底层协议到工程实现
  • 两学一做专题网站素材建网站商城有哪些公司
  • android 自定义 dialog 点击空白区域无法关闭
  • 百度新闻源网站有哪些购物系统名称
  • CSP-X 2024 复赛编程题全解(B4104+B4105+B4106+B4107)
  • ARM架构云手机的优点
  • tiny-gpu入门4: ALU模块分析
  • 学做网站论坛vip码锦州宝地建设集团有限公司网站
  • Android15增强型视觉系统(EVS)
  • RK Android14 去除Setting apk顶部标题栏和搜索栏
  • K8s学习笔记(二十三) 网络策略 NetworkPolicy
  • 部门子网站建设方案公司名称大全简单
  • 关于JVM调优,我想聊聊数据和耐心
  • LED显示的一种思路---摄像机思想(学习总结)
  • 2021/12 JLPT听力原文 问题四
  • 算法入门:专题攻克二---滑动窗口(将x减到0的最小操作数,更新中。。。)
  • 如何知道网站是否被k找能做网站的
  • __金仓数据库平替MongoDB实战:医疗手术场景下的国产化替代方案__