public class Engine { public String turnON() { return new String("turn on"); } } public class Car extends Engine { public void drive() { System.out.println(this.turnON()); //it works fine because Car can inherit the public method Engine engine = new Engine(); System.out.println(engine.turnON()); // We can invoke it on an Engine reference becuase turnON() is public } }