内容:
一、构造函数是什么?
(1)构造函数 ,是一种特殊的方法。
构造函数具有与类相同的名称(
方法名与类名一样
),它
主要用来在创建对象时初始化对象, 即为对象成员变量
赋初始值,总与new运算符
一起使用在创建对象的语句中。没有返回值。
(2)如果不指定构造函数,则类有一个默认的无参构造函数
(
写一个类,如果没有写任何的构造函数,那么这个类有一个默认的无参数的构造函数
)。
无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用
默认构造函数
。除非类是Static的,否则 C# 编译器将为无构造函数的类提供一个公共的
默认构造函数
,以便该类可以实例化。
(2)构造函数必须是在类里的一级声明,并且命名为类名。
(3)构造函数可以有参数,new对象的时候传递函数参数即可。
(4)如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
(5)
构造函数可以重载,也就是由多个参数不同的构造函数。
(6)构造函数是不能继承的,但是可以被调用,任何一个子类的构造函数
执行前都会调用父类,所以父类需要写一个无参数的构造函数。
二、我的错误
导致了下面那个图片有问题出现:
如果写一个没有参数的构造函数,就不会出现上面那个图片的问题了。
下图的 Public class Student后面没有参数,因
此Student yn = new Student();就可以正常运行了。
三、重载和重写的区别:
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同;一般用于子类继承父类时重写父类中的方法。
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的
重载的例子就是类的构造函数,可以参考
API帮助文档看看类的构造方法
四、总结
如果我不去敲代码,我也不会发现这个问题。而我敲代码了,然后发现了这个问题,这就是行动下移的好处。看视频一定要跟着敲一敲,只是纯粹的看,一点收获也没有的。