继承 虚方法 多继承
继承 :
1.一个类需要其他类属性和方法 通过继承实现 假如:a b a是子类 b是父类
2.关于继承 在子类调用父类的构造函数通过base() :子类无参构造函数默认就有 :base() 如果想调用父类有参构造函数必须使用:base()
虚方法 :
1.在父类里面定义虚方法 例如 : public virtual string Age()
{cw(“这是一个数字”)reyurn "22"
}
2.在子类里写这个虚方法 例如 : public override string Age()
{cw(“这是一个数字”)reyurn "22"
}
多继承:
1.接口的关键字是interface
2.只有声明 没有实现
3.哪个类需要使用这个接口 需要实现这个接口
4.不能使用new进行创建
5.不能使用public等修饰符进行修饰
6.要使用这个接口的类 需要把接口属性和方法实现
7.c# 通过接口实现多继承
8.接口完整写法
例如 interface IA
{
int Age{get:set}
void Add()
}
多态和函数重载:
1.方法名字一样
2.参数类型不一样 参数个数不同 或者非返回值不同
3.仅仅方法的返回值不一样 不属于函数重载
4.例如函数重载
public int Add(int a,int b) public double Add(double a, double b)
{ {
return a + b; return a + b;
} }
public double add (int a,int b)
{
return a+b;
}不是重载函数
符号重载:
1.关键字operator
2.public static int operator +( Rect 人1, Rect r2){}
3.其实也是通过函数改变符号的作用
多态 :
1.动态的多态性的体现 虚方法 接口 抽象类
2.静态的多态性的体现 函数重载 符号重载
3.抽象类的特点
1. 使用abstract 关键字进行定义
2.抽象类可以有抽象方法 只是声明部分 没有实现部分
3.抽象类里面也可以有普通方法
4.抽象方法:只能定义在抽象类里面 在方法前面添加abstract进行修饰
5.抽象类不能通过new进行创建
接口和密封 :
1.lAnimal il = new lAnimal()这个接口创建的方式不对
2.怎么通过接口实现多继承 :class man :People ,IAnimal,IB
接口和抽象类的区别:
1 抽象类关键字abstract,接口的关键字interface
2 一个类只能继承一个抽象类,一个类可以实现多个接口
3 抽象类可以定义抽象方法,非抽象子类必须实现父类的抽象方法;
接口必须实现接口里面所有属性和方法
4 实现抽象方法需要关键字overrider ,接口直接实现就行
密封类:
1.密封类的关键字 sealed
2.不能被继承
只读属性和结构体:
1.只读属性的关键字 readonly
2.只读的静态属性 定义时候赋值或者在静态的构造函数中初始化
结构体:结构体和类的区别
1.结构体是值类型, 类是引用类型
2 结构体不能声明无参数的构造函数,类可以声明无参数的构造函数
3 结构体不能被继承, 类可以被继承
4 结构体在声明字段初始化不能赋值,可以在构造器进行赋值,类可以在初始化和构造函数都可以 赋值
5 结构体和类都可以实现一个或者多个接口
6 结构体不能声明protected成员变量,类中可以声明受保护的成员变量
lambda表达式:
1.集合中常用的lambda表达式
2 查询班级为1001下所有的学生信息
List<Student> s2 = list.Where(t => t.ClassCode == "1001").ToList();
2 查询班级编号为1001并且把查询出来结果按照年龄由小到大进行排序
List<Student> s3 = (list.Where(t => t.ClassCode=="1001").OrderByDescending (t=>t.Age)).ToList();
3 查询班级编号为1001班级并且姓名以李的开头根据年龄进行排序
List<Student> s4 = (list.Where(t => t.ClassCode == "1001" && t.StudentName.StartsWith("李")).OrderBy(t=>t.Age)).ToList();
4 对所有的学生年龄计算总和
Console.WriteLine(list.Sum(t => t.Age));
5 计算1001班学生的年龄总和
Console.WriteLine(s2.Sum(t=>t.Age));
6 求1001班最大学生年龄是多少
Console.WriteLine(s2.Max(t=>t.Age));
7 求1001班学生年龄的平均值
Console.WriteLine(s2.Average(t=>t.Age));
8 求1001班所有学生姓名中包含屎的学生
List<Student> s5 = s2.FindAll(t => t.StudentName.Contains("屎"));
9 返回满足条件个数 10个学生年龄为20的学生个数
Console.WriteLine(s2.Count(t => t.Age == 20));
10 返回第一个满足条件的实体对象 不存在返回null
Student aa = s2.FirstOrDefault(t => t.Age == 20);
常用的特性都有哪些
[Browsable(true)]
[Description("这是整型变量")]
[Category("外观"),DefaultValue(19)]
public int A;
// 多个特性可以通过一个【】进行连接起来
//[Browsable(true), Description("这是整型变量"), Category("外观"), DefaultValue(19)]
//public int A;
1150

被折叠的 条评论
为什么被折叠?



