Abstract class adalah class yang tidak bisa dibuat secara instan sebagaimana class pada umumnya. Abstract class harus di implementasikan pada class turunan dari class Abstract tersebut. Abstract class berisi berisi sebuah method abstract dan method default yang bisa di override pada class turunan. Tidak semua bahasa pemrograman yang mendukung OOP mempunyai abstract class dan abstract method Seperti halnya c++. Maka dalam contoh code program Abstract class c++ harus menggunakan Class biasa dan virtual method agar bisa di override pada class turunannya.

C#

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

namespace Bab5
{
    abstract class mtk
    {
        public abstract void pembagian(int a, int b, int c);
        public void perkalian(int a, int b)
        {
            Console.WriteLine("Perkalian");
            Console.WriteLine();
            Console.WriteLine("Masukan Nilai 1	= {0}", a);

            Console.WriteLine("Masukan Nilai 2	= {0}", b);

            Console.WriteLine("Hasil Perkalian = {0}", a * b);
        }
    }
    class bagi : mtk
    {
        public override void pembagian(int a, int b, int c)
        {
            Console.WriteLine();
            Console.WriteLine("Pembagian");
            Console.WriteLine();
            Console.WriteLine("Masukan Nilai 3	= {0}", c);
            Console.WriteLine("Hasil Pembagian = {0}", a * b / c);

        }
    }

    class Program
    {
        static bagi k = new bagi();
        public static void Main(string[] args)
        {
            int a = 10;
            int b = 10;
            int c = 2;

            k.perkalian(a, b);
            k.pembagian(a, b, c);
            Console.ReadKey(true);
        }
    }

}

C++

#include <cstdlib>
#include <iostream>

using namespace std;


class mtk
{
      public : virtual void pembagian (int a, int b, int c)=0;
      public : void perkalian(int a, int b)
      {
             cout<<"Perkalian"<<endl;
             cout<<"Masukan Nilai 1 = "<<a<<endl;
             cout<<"Masukan Nilai 2 = "<<b<<endl;
             cout<<"Hasil Perkalian = "<<a*b<<endl;
      }
};
class bagi : public mtk
{
      public : void pembagian (int a, int b, int c)
      {
             cout<<endl;
	         cout<<"Pembagian"<<endl;
	         cout<<endl;
             cout<<"Masukan Nilai 3 = "<<c<<endl;
	         cout<<"Hasil Pembagian = "<<a*b/c<<endl;
      }
};


int main(int argc, char *argv[])
{
    bagi k;
    
    int a = 10;
	int b = 10;
	int c = 2 ;

    k.perkalian(a,b);
	k.pembagian(a,b,c);
	
	cout<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Java

package bab5;
import java.util.*;

abstract class mtk
{
    public abstract void pembagian (int a, int b, int c);
    public void perkalian(int a, int b)
    {
        System.out.println("Perkalian");
        System.out.println();
	System.out.println("Masukan Nilai 1 = "+ a);
	System.out.println("Masukan Nilai 2 = "+ b);
	System.out.println("Hasil Perkalian = "+ a*b);
    }
}

class bagi extends mtk
{
    @Override
    public void pembagian (int a,int b,int c)
    {
        System.out.println();
	System.out.println("Pembagian");
	System.out.println();
        System.out.println("Masukan Nilai 3 = "+ c);
	System.out.println("Hasil Pembagian = "+ a*b/c);
    }
}

public class Main {

    static bagi k = new bagi();
    private static Scanner input = new Scanner(System.in);
    public static void main(String[] args)
    {
        int a = 10;
	int b = 10;
	int c = 2 ;

        k.perkalian(a,b);
	k.pembagian(a,b,c);

    }

}