C#_结构体、只读属性、接口、抽象类及多态方法总结

一:结构体

值类型:基本数据类型、结构体struct、枚举类型enum

结构类型:是属于值类型,使得一个单一变量可以存储各种数据雷西那个的相关的数据

string:特殊的引用类型

结构体和类的区别:

  1. 结构体是值类型,类是引用类型
  2. 结构体不能声明无参数的构造函数,类可以声明无参数的构造函数
  3. 结构体不能被继承,类可以被继承
  4. 结构体在声明字段初始化不能赋值,可以在构造函数中进行赋值,类可以在初始化和构造函数都可以赋值
  5. 结构体和类都可以实现一个或者多个接口
  6. 结构体不能声明protected成员变量,类中可以声明受保护的成员变量

构建结构体,显示效果如下图所示:

二:只读属性

三:接口

先定义接口interface  只有声明,没有实现

类实现接口,把属性和方法实现


        interface A
        {
            int a { get; set; }
            void b();
        }
        class B:A
        {
            public int a {  get; set; }
            public void b() { Console.WriteLine("11"); }

        }

四:抽象类

class前面添加abstract定义抽象类

可以定义抽象

方法,就比如:

public abstract void Add();

定义子类实现父类的抽象方法,添加override关键字

abstract class People {
            public abstract void Add();
        }
        class Man:People
        {
            public override void Add() { Console.WriteLine("11"); }
        }


五:多态

多态有很多种方法:就比如虚方法函数重载符号重载抽象类接口

函数重载一定过程:

一个类,两个方法名字相同,但是参数类型和参数个数或者方法返回值不同

就比如:

public void Add(int a ,int b){} ;
public void Add(double a ,int b){};

符号重载:

方法定义成静态方法、并且返回值、operator
实现虚方法过程:

  1. 必须有父类,子类继承关系
  2. 在父类里面的方法前面添加vitural关键字
  3. 在子类里面同名的方法前面加上overrider关键字
  4. 调用验证

如果有些不对的地方呢,请诸位大佬多多包含一下哈。😁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值