一:子类中重写父类中的方法
new方法:
在继承父类时相同的方法可能有不同的表现形式,比如说talk(),父类中:class mammal{public talk(){}}
子类中:class horse:mammal{new public talk(){}}//使用new关键字重写父类中talk()方法,将父类中的talk()隐藏;
所以在实例化时:horse bighorse=new horse();bighorse.talk调用的是子类中重写的talk()方法;
二:抽象类:
public abstrct class computer
1:抽象类不能被实例化;
2:任何一个可以被实例化的类都有构造函数;
3:那抽象类有构造函数吗?抽象有构造函数;
4:那么抽象类有构造又不能被实例化(本身不能),它的子类(可以是抽象类也可以是普通类)就可以被实例化;
5:一个方法是抽象的方法,这个方法就不应该有方法体(没大括号);
6:在抽象方法在子类中可以重写方法体实现代码override;
7:抽象方法不能定义到非抽象类中类中;
8:实现抽象类就把抽象类中的抽象方法全部重写;
三:虚方法
public virtual string guanji()
1:虚方法必须有方法体(与抽象方法的区别);
2:虚方法可以定义到非抽象中(与抽象方法的区别);
3:虚方法在子类中不一定都要重写(与抽象方法的区别);