Jumat, 15 Agustus 2014

Abstract Class

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();
}
         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();
            }
}
         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  **/
}
Example :

Contoh Interfaces
         Example:
      Ketika dinyatakan dalam antarmuka
interface Shape
{
            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();
            }
}
         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
}


Tidak ada komentar:

Posting Komentar