龙空技术网

教你.Net虚方法和抽象方法,重写和重载区分

蜜獾n柴 71

前言:

此刻姐妹们对“虚方法 抽象方法”大约比较看重,咱们都需要了解一些“虚方法 抽象方法”的相关文章。那么小编在网络上搜集了一些对于“虚方法 抽象方法””的相关资讯,希望你们能喜欢,各位老铁们快快来学习一下吧!

抽象类不能被实例化(new),接口可以看成特殊的抽象类,所以接口也不能被实例化。抽象方法不能用sttic修饰

抽象方法是必须被派生类覆写的方法。

抽象方法是可以看成是没有实现体的虚方法

抽象方法和虚方法的区别

(1)虚方法有方法体,抽象方法没有方法体。抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化;

(2)抽象方法只能在抽象类中声明,虚方法不是;

(3)派生类必须重写抽象类中的抽象方法,虚方法则不必要。

所以虚方法可以附加一些需要改变的东西。

在JAVA方面

方法重载(overload):

方法重载就是在一个类中可以创建多个方法,它们具有相同的名字,但是具有不同的参数和不同的定义,调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法,这就是多态性,重载的时候方法名一样,参数类型和个数不一样,返回值类型可以相同可以不同,可以有不同的访问修饰符,可以抛出不同的异常.

方法重写(override):

父类与子类之间的多态性,对父类的函数进行重新定义,如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写,在JAVA中子类可以继承父类中的方法,而不需要重新编写相同的方法,但有时子类并不想原封不动地继承父类的方法,而是想做一定的修改,这就需要采用方法重写,方法重写又称方法覆盖

若子类中的方法与父类中的某一方法具有相同的方法名,返回类型,参数列表,则新方法将覆盖原有的方法,如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类

而.net方面

重载是指编写一个与已有方法同名,但参数列表不同的方法,而重写是指在派生类中重写基类的虚方法。重写是完全改变父类方法进行调用。比如

C1 c1 =new C1()(父类)

C2 c2 =new C2()(子类)

C1 c3 =new C2()

c3调用的方法也是子类中的方法,并且继承了父类的其他功能。

总结重写和重载区别如下:

1.重写必须继承,重载不用。

2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。

3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。

4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常

标签: #虚方法 抽象方法 #虚方法和抽象方法的区别是什么 #net重写继承方法 #net重写和重载的区别