Overloading adalah suatu cara untuk memberikan nama yang sama kepada dua method yang berbeda meski dua method tersebut berada dalam class yang sama. Hal ini dapat dilakukan dengan cara membedakan tipe parameter, jumlah parameter dan susunan parameter, Manfaat penggunaan overloading adalah agar method yang mempunyai tingkah yang hampir sama mudah diingat oleh developer software.

Overriding digunakan oleh Class Turunan yang berusaha memodifikasi tingkah laku yang diwarisi dari Class Induk. Tujuannya adalah supaya  Class turunan memiliki tingkah laku yang lebih spesifik. Ini dilakukan dengan  cara mendeklarasikan kembali method milik parent class di Class turunan.

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bab3
{
class Program
{
class Baca
{
public void Tes() //---> overload method
{
Console.WriteLine("Saya");
}

public void Tes(string a) //---> overload method
{
Console.WriteLine("Nama : {0}", a);
}

public void Tes(string a, int b) //---> overload method
{
Console.WriteLine("Anak : {0}ke {1}", a, b);
}

public virtual void Tes2()
{
Console.WriteLine("Belajar");
}
}

class Tulis : Baca
{
public override void Tes2() //---> override
{
Console.WriteLine("Baca Tulis");
}
}

static void Main(string[] args)
{
Baca s = new Baca();

s.Tes();
s.Tes("Ahmad Nur Andi");
s.Tes("",1);
s.Tes2();
s = new Tulis();
s.Tes2();

Console.ReadKey();
}
}
}

C++

#include <cstdlib>
#include <iostream>

using namespace std;
class Baca
{
public :
void Tes()
{
cout<<"Saya"<<endl;
}

void Tes(string a)
{
cout<<"Nama : "<<a<<endl;
}

void Tes(string a,int b)
{
cout<<"Anak : "<<a<<"ke "<<b<<endl;
}
virtual void Tes2()
{
cout<<"Belajar"<<endl;
}
};

class Tulis : public Baca
{
public :
void Tes2()
{
cout<<"Baca Tulis"<<endl;
}
};

int main(int argc, char *argv[])
{
Baca s;
Tulis d;
Baca *c;

s.Tes();
s.Tes("Ahmad Nur Andi");
s.Tes("",1);

s.Tes2();
c = &d;
c->Tes2();

cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Java

package bab3;
import java.util.*;

class Baca
{
 public void Tes() //---> overload method
 {
 System.out.println("Saya");
 }

public void Tes(String a) //---> overload method
 {
 System.out.println("Nama :"+a);
 }

public void Tes(String a,int b) //---> overload method
 {
 System.out.println("Anak :"+a+" ke "+b);
 }

public void Tes2()
 {
 System.out.println("Belajar");
 }
}

class Tulis extends Baca
{
 @Override
 public void Tes2() //---> override
 {
 System.out.println("Baca Tulis");
 }
}

public class Main {

/**
 * @param args the command line arguments
 */
 public static void main(String[] args)
 {
 Baca s = new Baca();

s.Tes();
 s.Tes("Ahmad Nur Andi");
 s.Tes("",1);
 s.Tes2();
 s = new Tulis();
 s.Tes2();
 }

}