Abstract
Class
•
Menyatakan karakteristik umum subclass.
•
Menyatakan abstrak.
•
Tidak dapat membuat objek menggunakan
operator baru.
•
Hanya gunakan sebagai superclass dari
kelas-kelas lain dan membentuk abstrak.
•
Menyatakan menggunakan kata kunci
abstrak.
•
Superclass harus nyata sehingga dapat
diabstraksikan ke subclass.
•
Sebuah template atau desain untuk
subclass bawah.
•
Menyediakan fungsi abstrak juga (kelas
abstrak)
•
Fungsi diganti dalam subclass.
•
Sebuah objek harus mampu menerapkan
semua metode abstrak dalam kelas abstrak.
•
Kelas Abstrak sebagai jenis.
Shape[]
objs = new Shape[10];
Abstract
Method
•
Dummy Metode
Kode atau Metode Prototype.
•
diumumkan
Abstrak Class.
•
Tidak ada
implementasi.
•
Tidak
memiliki konten coding dalam fungsi
•
Segera
diakhiri dengan tanda titik koma (;).
•
Metode yang
harus diganti dalam subclass
•
Menyatakan
menggunakan kata kunci abstrak.
Contoh untuk Abstrak Kelas dan Metode
•
Example:
ketika mendeklarasikan kelas Abstrak dan Metode yang
abstract class Shape
{
public String color;
public Shape() {}
public void setColor(String c)
{
color = c;
}
public String getColor()
{
return color;
}
abstract public double area();
}
abstract class Shape
{
public String color;
public Shape() {}
public void setColor(String c)
{
color = c;
}
public String getColor()
{
return color;
}
abstract public double area();
}
•
Ketika digunakan dalam Subclass
public class Point extends Shape
{
static int x, y;
public Point()
{
x = 0;
y = 0;
}
public double area()
{
return 0;
}
public double perimeter()
{
return 0;
}
public static void print()
{
System.out.println("point: " + x + "," + y);
}
public static void main(String args[])
{
Point p = new Point();
p.print();
}
}
{
static int x, y;
public Point()
{
x = 0;
y = 0;
}
public double area()
{
return 0;
}
public double perimeter()
{
return 0;
}
public static void print()
{
System.out.println("point: " + x + "," + y);
}
public static void main(String args[])
{
Point p = new Point();
p.print();
}
}
•
Output
Interfaces
•
Terdiri hanya dari konstanta dan metode
abstrak
•
Tidak bisa membuat objek dengan operator
new
•
Membuat subclass yang memiliki lebih
dari satu superclass (solusi multiple inheritance)
•
Tidak diwariskan tetapi
diimplementasikan
•
Menyatakan menggunakan antarmuka kata
kunci.
•
Dalam subclass menggunakan alat kata
kunci.
•
Setiap antarmuka dikompilasi ke garis
bytecode, seperti kelas reguler.
•
Semua metode yang dideklarasikan dalam
interface harus diganti oleh menerapkan kelas.
•
Bentuk interface:
modifier interface
Interface_Name
{
/** Declares constant **/
/** Abstract Method **/
}
{
/** Declares constant **/
/** Abstract Method **/
}
Example :
Contoh Interfaces
•
Example:
Ketika dinyatakan dalam antarmuka
interface Shape
{
public double area();
public double volume();
}
{
public double area();
public double volume();
}
•
Ketika digunakan dalam Subclass
public class Point
implements Shape
{
static int x, y;
public Point()
{
x = 0;
y = 0;
}
public double area()
{
return 0;
}
public double volume()
{
return 0;
}
public static void print()
{
System.out.println("point: " + x + "," + y);
}
public static void main(String args[])
{
Point p = new Point();
p.print();
}
}
{
static int x, y;
public Point()
{
x = 0;
y = 0;
}
public double area()
{
return 0;
}
public double volume()
{
return 0;
}
public static void print()
{
System.out.println("point: " + x + "," + y);
}
public static void main(String args[])
{
Point p = new Point();
p.print();
}
}
•
Output
Interface
VS Abstract Class
•
Perbedaan interface dan kelas abstrak
jelas dari penggunaannya. Antarmuka dilaksanakan dan kelas abstrak berasal
(diwariskan).
Variables
|
Constructors
|
Methods
|
|
Abstract Class
|
Bebas, tidak ada batas, tidak ada pembatasan
|
Constructor dapat panggilan melalui subclass
melalui rantai konstruktor.
Tidak dapat membuat objek
|
Bebas, tidak ada batas, tidak ada pembatasan
|
Interfaces
|
Semua variabel harus dinyatakan
public static final
|
No constructor.
Tidak dapat membuat objek
|
Semua fungsi harus dinyatakan
public abstract
|
•
Java hanya memungkinkan pewarisan
tunggal untuk kelas, tetapi dapat beberapa untuk antarmuka.
public class NewClass
extends BaseClass implements Interface1, …, InterfacesN
{
// ….
}
{
// ….
}
•
Sebuah antarmuka dapat diwariskan dari
kelas lain menggunakan kata kunci meluas.
public interface
NewClass extends Interface1, …, InterfacesN
{
// constant and abstract method
}
{
// constant and abstract method
}
Tidak ada komentar:
Posting Komentar