java 中abstract和virtual的区别是啥?有啥用处?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中abstract和virtual的区别是啥?有啥用处?相关的知识,希望对你有一定的参考价值。

如题,java 中abstract和virtual的区别是什么?有什么用处?
sorry,是C#

参考技术A virtual是C#中的吧 你是问C#中abstract和virtual的区别吧

虚方法:由virtual声明,它允许在派生类中被重写,要重写方法,必须先声名为virtual
public class myclass

public virtual int myint()

函数体;


class myclass1:myclass

public override int myint()

函数体1;



抽象类、抽象函数:由abstract声明,在抽象类中可以定义抽象方法,抽象方法基本没有执行代码,派生类必须重写它,提供其执行代码
public abstract class myclass

public abstract int myint();

public class myclass1:myclass

public override int myint()

函数体;



两者不同本回答被提问者采纳
参考技术B java中virtual关键字么?
我没用过。
参考技术C java中没有virtual关键字!

C#中virtual和abstract的区别

参考技术A

这个题目在面试的经常出现哈!


我的理解是:

    virtual 必须要有实现主体,而abstract 可以不用。

    virtual可以被子类重写(也可以不重写),但是abstract必须被重写。

    virtual 可以被实例化,但是abstract不可以被实例化


    我觉得这3个就是核心了。。


    参考资料:

    http://www.cnblogs.com/wang7/archive/2012/04/17/2453624.html

    http://blog.csdn.net/aptentity/article/details/5657568

    加油!

本回答被提问者和网友采纳

以上是关于java 中abstract和virtual的区别是啥?有啥用处?的主要内容,如果未能解决你的问题,请参考以下文章

java 中abstract和virtual的区别是啥?有啥用处?

C#中virtual 方法和abstract方法的区别

C#中virtual和abstract的区别

c#中virtual, abstract和override的区别和用法?

C#中virtual和abstract的区别

C#中Abstract和Virtual的区别