-
刚看第一遍的时候乱的很,反复看了三四次,耗费了三四个小时也不明白,后来自己不用泛型,使用普通类去实现相同功能,才明白泛型怎么用 和目的;老师的一些与之前不同的写法也增加了理解难度。比如不写Petcage<Dog> dog=new Petcage<Dog> ("名字");而用一个从来没见过的 var代替。 还有 return default<T>也没解释啥意思; 说下我的理解: 泛型就是在不确定类的 参数类型和返回类型时,设置一个变量来代替这个固定的类型。 当创建类实例时,在给这个变量赋对应类类型值,这样就可以实现一个类,输出不同类型的值和方法; 不用老师的例子,用一个给数组赋值输出数组的例子更好理解;比如设置一个类,构造函数初始化一个数组,数组类型为int,有给数组赋值方法和获取数组值的方法,在此注意:数组的类型int和获取数组值的方法的返回值类型都为int,如果实例此类调用方法,实参和返回值类型也必须是int;就此限定死了此类的实例; 如果想要一个设置char类型的实例,还得必须创建一个新的char的类和方法,才能实现;这样代码工作量就会很大;如果使用泛型,用变量<T>代替固定类型int或char,这样在实例化的时候,将T赋不同类型(int、double、char),这样就可以获得想要的返回值类型,从而实现了一个模板,只变一个参数T 就能实现相同的功能; 上面给出的例子。只需要把所有<T>去掉,后面的T全改为int或char 就能变为普通类了。对比理解非常简单了查看全部
-
new:实例化对象;覆盖的时候在方法前加new防止报错(隐藏方法) override:当用基类创建一个子类对象时,如果你要用到子类中的方法,就必须在基类中定义一个虚方法,然后在子类中用override重写这个方法,否则会报错,因为基类中不存在这个方法也就找不到子类中的方法。如果用子类创建一个对象时,则不用写虚方法。查看全部
-
静态成员相当于类里面任何位置的方法都可调用;相当于创建了一个公共内容查看全部
-
我理解的接口就是 一个在继承类里必填方法的限制;某个类继承了一个接口,就必须拥有接口说明的方法;在此点上与抽象方法一致;区别就是接口不包含抽象类的值、属性等。接口只能有一个空方法,此方法只能用来被继承类实现。 接口就是简化的抽象类查看全部
-
我理解的抽象类、抽象方法 和虚方法 在目的上的区别是,基类虚方法如果为空,那么同样可实现不出现统一的调用内容,其派生类内可不存在overide重写的方法。而继承含抽象方法的抽象类时,派生类内必须存在抽象方法的重写方法,不存在就会报错;本质区别就在于派生类内的重写方法 是必填还是非必填 ;(老师讲课太虚了,敢不敢实一点)查看全部
-
1.构造函数: 即使用与类同名的参数作为方法名;注意:构造函数无返回值类型 2.目的: 实例化对象时能同时调用同名函数,使代码更简洁; 3.带参数的构造函数:构造函数存在形参(public jiaosheng(string name)),这样初始化实例是同时可以调用此方法,并且把name的实参赋给方法; 4.若带的参数为基类内的公有参数,为了统一,将基类创建同样的构造函数。初始化派生类的实例时,需将实参赋值给基类的构造函数:Pet(基类) Dogs派生类;派生类内构造函数后需加上:base(形参); 如:jiaosheng(string name):base(name) 5.调用构造函数顺序 实例成员初始化->基类构造函数->派生类的构造方法查看全部
-
虚方法关键字virtual(基类内修饰) override(派生类内修饰) 目的:不同派生类内同样的属性(比如宠物叫声),为了统一调用而又能实现个性化,会调用基类的方法(基类的引用指向派生类实例Pet dogs=new Dogs()) 调用共有方法如jiaosheng()时,如果基类与派生类存在同名方法,并且基类内未虚方法vitual,派生类内有重写override方法,则调用重写方法; 与隐藏方法的区别。隐藏方法是派生类的引用指向派生类对象。 因为共有属性为了统一保存,统一为基类的引用更加简洁 能用虚方法的内容:方法,属性,索引器,事件查看全部
-
覆盖基类方法(隐藏父类方法,调用派生类方法,显示个性化),派生类中写同名方法 前面加new,然后派生类引用指向派生类对象时,会引用同名的但带new的新方法 如父类Pet 内有一个print()方法,子类Dog想在调用pint()方法是显示个性内容,需创建新的print()方法,新的同名方法前面需加上new; Dog dog=new Dog()的实例调用print()方法时,会按照new的执行查看全部
-
队列的运用,队列跟栈类似,不过是先进先出,后进后出 Enqueue Dequeue查看全部
-
栈(是一个泛型的类)的运用,先进后出,后进先出。类似一端开头的羽毛球筒 Push Pop Peek查看全部
-
字典运用查看全部
-
集合运用查看全部
-
面向对象编程的特点:封装、继承、多态查看全部
-
Lambda表达式查看全部
-
匿名方法定义方式 del=delegate(){.....}; (参数列表){方法体}查看全部
举报
0/150
提交
取消