您的位置:首页 > 编程语言 > C#

C#——重写与抽象类

2015-12-20 16:03 351 查看

概述

前几天,看了一个电影叫《教父3》,教父其实就是黑帮老大,他的儿子继承了他的位置,成为新的教父。小教父和老教父干的活差不多,都是经营他们的大家族,但是小教父努力使他们经营的产业走向和非法化,这就是他和他父亲的区别。

这和我们学的重写很像,重写就是调用一个方法,实现不同的行为。

详细介绍(重写)

子类想用父类的方法,但是要做一些修改,这就用到了重写。

子类的方法名可以和父类的方法名重名,但是会出现一条绿线,解决方法有两个。

一:在子类方法的修饰符后面加new就解决了




new是把父类中的方法隐藏了。

二:用重载

在父类的方法的修饰符后面加virtual;




在子类中重写父类的方法,加上override,可以更换父类方法里的内容。



Tips:虚方法与重写

1.方法不能用static修饰。

2.方法重写与基类的签名必须一致。

3.virtual不能与private一起使用。

比较

一、虚方法VS抽象方法




二、抽象方法VS抽象类

1. 抽象方法和抽象类都用abstract修饰;

抽象方法必须在抽象类中;

抽象方法没有方法体;

2. 抽象类无法被实例化

父类是抽象类,子类继承了这个类,必须把抽象类中的抽象方法重写。

三、重写(override)VS重载(overload)

1.重载:方法的名称相同,参数个数或参数类型不同。是面向过程的概念。

2.重写:不同对象收到相同消息时,会产生不同的行为。

总结

重写就实现了面向对象中的多态。子类不只是对父类纯粹的继承,对父类的东西做了修改或添加了新的功能,是父类的一个变体。这样继承增加了面向对象的复用性而多态增强了灵活性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: