共同点:
1、都是用来修饰父类;
2、如果用来修饰方法,前面不能加private(毕竟是要被继承的,private的继承不了),虚方法和抽象方法都不能用private;
区别:
1、abstract是抽象的,抽象方法必须在抽象类中,抽象方法不能有方法主体,抽象方法必须要被继承的子类重新,不重写会报错;
2、virtual是虚拟的,虚方法必须要有方法主体,被继承的子类可以重写虚方法,也可以不重写