C#基础总结之八面向对象知识点总结-继承与多态-接口

1、方法深入讲解(返回值,形参与实参)
    方法
    public int getName(int i,int j)
    {
        int sum = i + j;
        return sum;
    }
2、利用泛型存储对象数据
3、关于静态构造函数需注意以下几点:
      1)、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。
     2)、是在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,也就无法控制什么时候执行静态构造函数了。  
    3)、一个类只能有一个静态构造函数。  
    4)、无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。  
    5)、最多只运行一次。  
    6)、静态构造函数不可以被继承。  
    7)、如果没有写静态构造函数,而类中包含带有初始值设定的静态成员,那么编译器会自动生成默认的静态构造函数。

4、this关键字
5、命名空间及包名
6、分部类
7、编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。

思路:

设计一个学生类Stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有成员函数disp(),用于输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。在main()函数中定义了一个对象数组用于存储输入的学生数据。




 //继承与多态
            //继承
            //在子类中访问父类的属性或者方法时,用base点出
            //如果父类和子类拥有相同的属性或方法,在main方法调用时,实例化子类,默认调用的是子类的属性或方法
            //继承格式  :子类名称后,冒号 基类名
                 //class 子类名:基类名
                 //{
                 //}
            //派生类比基类的可访问行低或相等,可以继承
            //public Student(string name,uint age,uint id):base(name,age){}
                 //:base 关键字将调用 Person 类构造函数      先基类 后子类
            //子类方法调用基类属性方法时,默认先执行基类的属性方法
                 //public new void eat()             //new覆盖父类的方法
                 //{
                 //    Console.WriteLine("111");
                 //}
                 //public override void eat()       //override  基类定此义为虚方法,对基类的方法进行重写
                 //{
                 //    Console.WriteLine("123");
                 //}
            //多态
            //重写override
                 //Person p1 = new Student();
                 //Person p2 = new Teacher();
                 //   p1.eat(); 有重写的方法
                 //   p2.eat(); 有重写的方法
                 //打印出来时不一样的
            //重载
            //抽象abstract   类/方法  抽象类里可以有非抽象的方法,如果类里有抽象方法就必须是抽象类
                 //抽象方法在子类中必须重写
            //密封类(sealed)
        //接口
            //所有方法没有方法体(其中的方法不写访问修饰符)
                //internal interface Printer (接口名隐试声明为public)
                   //{
                   //    void getPerson();
                   //}
            //与抽象类的区别,一个类可以实现多个接口
            //(也可以继承一个基类,实现多个接口的方法可以写在基类里)
            //有多个实现接口的类=>调用的时候可以用接口new一个实现这个接口的类,实现这个类里面的方法体

            //分部类 partial
            //static :只属于基类  不属于派生类的时候  可以将其定义为静态的
                  //静态的属于类,不是对象,用大类名直接点出

            //传的时候是实参   调用的时候是形参

 

 本系列教程:

C#基础总结之八面向对象知识点总结-继承与多态-接口-http://www.cnblogs.com/spring_wang/p/6113531.html

C#基础总结之七面向对象知识点总结1http://www.cnblogs.com/spring_wang/p/6113526.html

C#基础总结之六 DataTable (临时表/数据源) 和Datatable 名片练习http://www.cnblogs.com/spring_wang/p/6113520.html

C#基础总结之五Dictionary<string, string[]>和while循环http://www.cnblogs.com/spring_wang/p/6113514.html

C#基础总结之四List-Hashtable-冒泡排序http://www.cnblogs.com/spring_wang/p/6113504.html

C#基础总结之三循环控制-for-数组-乘法表-arraylisthttp://www.cnblogs.com/spring_wang/p/6113496.html

C#基础总结之二循环控制-运算符http://www.cnblogs.com/spring_wang/p/6113484.html

C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换http://www.cnblogs.com/spring_wang/p/6113476.html

C#基础课程之六(临时表)DataTable使用方法http://www.cnblogs.com/spring_wang/p/6113454.html

C#基础课程之五集合(HashTable,Dictionary)http://www.cnblogs.com/spring_wang/p/6113404.html

C#基础课程之四集合(ArrayList、List<泛型>)http://www.cnblogs.com/spring_wang/p/6113396.html

C#基础课程之三循环语句http://www.cnblogs.com/spring_wang/p/6113383.html

C#基础课程之二变量常量及流程控制http://www.cnblogs.com/spring_wang/p/6113372.html

C#基础课程之一注释和控制台、一些常识http://www.cnblogs.com/spring_wang/p/6113361.html

C#基础第九天-作业答案-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113291.html

C#基础第九天-作业-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113285.html

C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113274.html

C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113258.html

C#基础第七天-作业答案-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113232.html

C#基础第七天-作业-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113224.html

C#基础第六天-作业-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113028.html

C#基础第六天-作业答案-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113033.html

C#基础第五天-作业答案-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113022.html

C#基础第五天-作业-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113013.html

C#基础第四天-作业答案-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113005.html

C#基础第四天-作业-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113000.html

C#基础第三天-作业答案-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112888.html

C#基础第三天-作业-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112885.html

C#基础第二天-作业答案-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112881.html

C#基础第二天-作业-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112875.html

C#基础第一天-作业答案http://www.cnblogs.com/spring_wang/p/6112872.html

C#基础第一天-作业http://www.cnblogs.com/spring_wang/p/6112867.html

C#-string.Format对C#字符串格式化http://www.cnblogs.com/spring_wang/p/6077098.html

posted @ 2016-11-29 14:34  王春天  阅读(1378)  评论(0编辑  收藏  举报
云推荐