知识点总结

继承  虚方法  多继承

继承 :

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;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值