Sebagaimana halnya C++, salah satu bahasa yang mengilhami Java, Java juga merupakan bahasa pemrograman berorientasi Objek. Java menggunakan kelas untuk membentuk suatu Objek. Beberapa sifat pada PBO "Java" adalah :
1) Pewarisan
Pewarisan adalah mekanisme penurunan variable ataupun method dari Superclass ke Subclass(keyword : "extends")
2) Polimorfisme
Polimorfisme adalah proses perubahan bentuk pada method yang terdiri dari 2 jenis, yaitu:
a) Overload : perubahan pada Parameter di class sendiri / pada class turunan.
b) Override : perubahan pada body khusus pada class turunan saja.
3) Pembungkusan / Encapsulation
Encapsulation adalah mekanisme tingkat akses yang terjadi pada program Java. Encapsulation dibagi menjadi 4, yaitu :
a) Public : tingkat akses pada semua class pada semua Package.
b) Default : tingkat akses pada semua class dalam Package yang sama (1 Package).
c) Protected : tingkat akses pada class turunan dan class itu sendiri.
d) Private : tingkat akses yang hanya bisa dilakukan pada class itu sendiri.
4) Modifier
Modifier adalah mekanisme perubahan / pengaksesan variable / method yang terbagi menjadi 2, yaitu :
a) Static : diberikan pada variable & method agar pengaksesannya tanpa initialisasi / pembentukan Objek baru.
b) Final : diberikan pada class agar tidak bisa diturunkan ke class yang lain, variable menjadi Konstan, dan method tidak bisa di Override.
5) Abstract Class
Abstract Class adalah Class yang tidak bisa dibuat Objek, berisi abstract method dan Non-abstract method, dan biasanya merupakan Class yang tertinggi (keyword : "abstract", tetapi untuk pemanggilan dari class turunan tetap menggunakan keyword : "extends", karena berupa Class).
6) Interface
Interface bukan merupakan class, berisi abstract method dan final variable (konstanta). Untuk menerapkannya harus pada class lain dengan keyword : "implements".