In Java, methods are virtual by default (can be overridden), but in C#, a method can be overridden if it is declared explicitly as virtual. Also, in Java there is no override keyword which is mandatory in C#.
[Java]
public class C extends B { public void MethodB() { } public void MethodA() { } } public class B extends A { public void MethodB() { } public void MethodA() { } } public abstract class A { public abstract void MethodA(); }
[C#]
public class C : B { public override void MethodB() { } public override void MethodA() { } } public class B : A { public virtual void MethodB() { } public override void MethodA() { } } public abstract class A { public abstract void MethodA(); }
