virtualabstractinterface区别以及用法

Posted mcyushao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了virtualabstractinterface区别以及用法相关的知识,希望对你有一定的参考价值。

virtual 用于在基类中的使用的方法,使用的情况为:

     情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。

     情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
 
    通俗地讲:老爸用virtual告诉儿子:"孩子,你要工作,找不到事做就跟我一样扫地"。

                  儿子用override告诉全世界:"我要改变家族的使命,不再扫地,我要编程!"。

                  如果儿子不用override地话,那他只能继承家族的事业就是扫地!
 
abstract:
   抽象类不能实例化,只能被继承。抽象类中可以有构造方法,一般方法,抽象方法,但是抽象方法并不具体实现,抽象方法必须在派生类中使用override来实现。同时,具有抽象方法的类一定是抽象类。
 
-----abstract 与virtual : 方法重写时都使用 override 关键字
 
Interface:
public interface IPerson
{
IPerson(); //错误
string name; //错误
public void getIDcard();//错误
void getName(); //right
void getAge(string s); //right
}
实现interface的类
1.与继承类的格式一致,如 public class Chinese:IPerson{}
2.必须实现 interface 中的各个方法












以上是关于virtualabstractinterface区别以及用法的主要内容,如果未能解决你的问题,请参考以下文章

JVM运行时数据区篇(方法区基本概述)

详解栈区堆区全局区文字常量区程序代码区

方法区和永久区/元空间之间的关系

关于栈区堆区全局区常量区代码区的总结

关于栈区堆区全局区常量区代码区的总结

Day332.方法区 -JVM