A child class can call parent class's methods. This is useful, for example, when a method is reimplemented in a child class, but you want to use the CHILD class IMPLEMENTATION as a BASE. Consider the example of the class Message: class Message { protected String sender; protected String msg; public Message(String sender, String msg) { this.sender = sender; this.msg = msg; } public String getMsg() { return "Sender: " + sender + "\n\n" + msg; } } The 'SecretMessage' class inherits the 'Message' class. The class has been reimplemented with the method getMsg. However, the reimplemented method requests a message from the child/inheriting class only, which is then "encrypted": class SecretMessage extends Message { public SecretMessage(String sender, String msg) { super(sender, msg); } // Overwritten method, which calls parent class's corresponding // method and then "encypts" the message. public String getMsg() { String content = super.getMsg(); String secretmsg = ""; for (int i=0; i