Social Media

Overriding @Override

Method overriding is often confused with method overloading. To restate – overloading is changing the signature of a method within a class, so multiple methods can share the same name, but different attributes. Method overloading concerns changing the behavior of a method in a subclass.

The rules can be summarised –

  • Same declared name as super-class
  • Signature and return type remain the same
  • Cant override private, static and final methods
  • Best Practice – @Override annotation
  • Can only throw wider exception – eg if parent throws IOException, you can throw Exception but not FileNotFoundException
  • Cannot reduce visibility
  • Dynamic Binding @Runtime
  • Access level cannot be less than parent – eg public parent cannot have protected or default child
  • Polymorphism


[sourcecode language=”java”]

class Bicycle {

public void ride() {

System.out.println("Just riding");



class RaceBike extends Bicycle {

public void ride() {

System.out.println("Ride fast");


public void sprint() {

System.out.println("Sprint now!");



public class TestOverride {

public static void main(String [] args) {

TestOverride testOverride = new TestOverride().go();


void go() {

Bicycle bicycle = new Bicycle();


Bicycle raceBike = new RaceBike();






Just riding

Ride fast

Sprint now!