虚方法virtual、抽象方法abstract、接口interface区别

接口、抽象类、抽象方法、虚方法:

这四个名词时非常容易混淆的:

首先说一下接口 与抽象类 的异同:

相同点:

1.他们都不能实例化自己,也就是说都是用来被继承的。

2.抽象类中的抽象方法和接口方法一样,都不能有方法体

不同点:

1.抽象类里可以有字段,接口中不能有字段.

2.抽象类中的普通方法可以有方法体,而接口方法没有方法体。

3.接口中的方法不能有访问修饰符,抽象类中的抽象方法被继承,需要override重写 .

4.接口更像是一种规范,一种约束。

5.一个子类只能继承一个抽象类,但却可以继承多个接口。

接下来是抽象方法 和虚方法 的异同:

其实可以把抽象方法看做是没有方法体的虚方法。

相同点:

1.抽象方法和虚方法都可以被重写。

不同点:

1.abstract 和virtual的关键字不同

2.抽象方法一定没有方法体,而虚方法可以有方法体。

3.抽象方法一定需要override重写,虚方法可以不重写。

posted @ 2016-06-30 22:26  沙漠绿洲uibe  阅读(251)  评论(0编辑  收藏  举报