Overriding vs Overloading

Overriding

親クラスのメソッドをサブクラスで再実装して使用することで、上位クラスの機能を拡張しようとするときに使用

class Dog{
    public void bark(){
        System.out.println("woof ");
    }
}
class Hound extends Dog{
    public void sniff(){
        System.out.println("sniff ");
    }
 
    public void bark(){
        System.out.println("bowl");
    }
}
 
public class OverridingTest{
    public static void main(String [] args){
        Dog dog = new Hound();
        dog.bark();
    }
}

Overloading

オーバーロードは、メソッド名は同じでパラメータの本数や種類が異なることでメソッドの再利用性を高めてメソッド名を変更したくない場合に使用

class Dog{
    public void bark(){
        System.out.println("woof ");
    }
 
    //overloading method
    public void bark(int num){
        for(int i=0; i<num; i++)
            System.out.println("woof ");
    }
}

※参考

www.programcreek.com