摘要:
override1. override是派生类用来重写基类中方法的;2. override不能重写非虚方法和静态方法;3. override只能重写用virtual、abstract、override修饰的方法;4.不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。new1. new是派生类用来隐藏基类中的方法的;也就是说在派生类中“看不到”基类中的方法;2. 如果要在派生类中隐藏(不是重写)基类中的方法,而没有使用new关键字,编译时会出现一个警告,提示如果是要隐藏基类中的方法,请使用new关键字;3. 派生类可以隐藏基类中的虚方法, 阅读全文
摘要:
先看下面这段代码的输出:classClassA{publicvirtualvoidWriteString(){Console.WriteLine("ClassA类virtualWriteString");}publicvoidWrite(){Console.WriteLine("ClassA类voidWrite");}}classClassB:ClassA{publicoverridevoidWriteString(){Console.WriteLine("ClassB类overridevoidWriteString");}publi 阅读全文
摘要:
一、override:Override关键字主要是提供派生类对基类方法的新实现。1、不可以用于重写非虚方法和静态方法2、与其配套使用的关键字是Virtual、abstract、Override。3、不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。二、new:new关键字可以在派生类中隐藏基类的方法,也就说在使用派生类调用的方法是New关键字新定义出来的方法,而不是基类的方法。在不使用New关键字来隐藏基类方法也是可以的,编译器会出现一个警告,提示如果有意去隐藏基类的方法,请使用New关键字修饰。可以对基类的虚方法、普通方法进行操作三、 阅读全文
摘要:
区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。抽象类中的abstract方法也不能有方法体。其他方法可以有方法体。区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相 阅读全文