Jawaban:
Tentu saja.
Mendeklarasikan abstrak kelas hanya berarti Anda tidak mengizinkannya dibuat instance-nya sendiri.
Mendeklarasikan abstrak metode berarti bahwa subclass harus menyediakan implementasi untuk metode itu.
Keduanya adalah konsep yang terpisah, meskipun jelas Anda tidak dapat memiliki metode abstrak di kelas non-abstrak. Anda bahkan dapat memiliki kelas abstrak dengan final
metode tetapi tidak pernah sebaliknya.
Ya kamu bisa melakukannya. Mengapa Anda tidak mencoba melakukan itu?
Ya kamu bisa. Kelas abstrak yang digunakan di java menandakan bahwa Anda tidak dapat membuat objek kelas. Dan metode abstrak subclass harus menyediakan implementasi untuk metode itu.
Jadi, Anda dapat dengan mudah menentukan kelas abstrak tanpa metode abstrak apa pun.
Adapun Contoh:
public abstract class AbstractClass{
public String nonAbstractMethodOne(String param1,String param2){
String param = param1 + param2;
return param;
}
public static void nonAbstractMethodTwo(String param){
System.out.println("Value of param is "+param);
}
}
Ini bagus.
YA Anda dapat membuat kelas abstrak tanpa metode abstrak. Contoh terbaik kelas abstrak tanpa metode abstrak adalah HttpServlet
Metode Abstrak adalah metode yang tidak memiliki isi, Jika Anda mendeklarasikan setidaknya satu metode ke dalam kelas, kelas tersebut harus dideklarasikan sebagai abstract its mandatory TAPI jika Anda mendeklarasikan class abstrak, tidak wajib mendeklarasikan metode abstrak di dalam class.
Anda tidak dapat membuat objek kelas abstrak, yang berarti tidak dapat dibuat instance-nya.
Ya, Anda bisa mendeklarasikan kelas yang tidak bisa dibuat sendiri dengan hanya metode yang sudah memiliki implementasi. Ini akan berguna jika Anda ingin menambahkan metode abstrak di masa mendatang, atau jika Anda tidak ingin kelas dibuat secara langsung meskipun tidak memiliki properti abstrak.
ya, kita dapat mendeklarasikan kelas abstrak tanpa metode abstrak apa pun. tujuan mendeklarasikan kelas sebagai abstrak bukan untuk membuat instance kelas tersebut.
jadi dua kasus
1) kelas abstrak dengan metode abstrak.
jenis kelas ini, kita harus mewarisi kelas dari kelas abstrak ini dan harus mengganti metode abstrak di kelas kita, mis: kelas GenricServlet
2) kelas abstrak tanpa metode abstrak.
kelas jenis ini, kita harus mewarisi kelas dari kelas abstrak ini, misalnya: tujuan kelas HttpServlet lakukan adalah meskipun Anda jika Anda tidak mengimplementasikan logika Anda di kelas anak Anda bisa mendapatkan logika induk
Ya, kita dapat memiliki kelas abstrak tanpa Metode Abstrak karena keduanya merupakan konsep independen. Mendeklarasikan abstrak kelas berarti ia tidak dapat dibuat instance-nya sendiri dan hanya dapat dibuat sub-kelas. Mendeklarasikan abstrak metode berarti Metode akan didefinisikan di subkelas.
ya kamu bisa melakukan itu.
mendeklarasikan class abstract berarti bahwa class tidak akan dibuat instance-nya oleh class lain.
dan harus ada setidaknya satu metode abstrak di dalamnya dan artinya Anda dapat mendeklarasikan metode abstrak di kelas itu jika Anda tidak mendeklarasikan metode daripada ok.
contoh:
public abstract class abs {
protected int cx = 0, cy = 0;
public void p() {
System.out.print("hello");
}
}
ini pasti akan berhasil.
Ya kamu bisa. Kadang-kadang Anda mungkin ditanyai pertanyaan ini bahwa apa tujuan melakukan ini? Jawabannya adalah: terkadang kita harus membatasi class agar tidak membuat instance sendiri. Dalam hal ini, kami ingin pengguna memperluas kelas Abstrak kami dan membuat instance kelas anak
Ya, Anda dapat menentukan kelas abstrak tanpa metode abstrak. Namun, jika tidak ada metode di dalam Anda mungkin lebih baik menggunakan antarmuka
Anda bisa, pertanyaan dalam pikiran saya adalah lebih banyak tentang Anda. Sejak awal, saya akan mengatakan bahwa tidak ada jawaban yang tegas dan cepat. Lakukan hal yang benar untuk situasi Anda saat ini.
Bagi saya warisan menyiratkan hubungan 'is-a'. Bayangkan sebuah kelas anjing, yang dapat diperluas dengan sub jenis yang lebih terspesialisasi (Alsatian, Pudel, dll). Dalam hal ini membuat abstrak kelas anjing mungkin adalah hal yang benar untuk dilakukan karena sub-tipe adalah anjing. Sekarang mari kita bayangkan anjing membutuhkan kalung. Dalam hal ini, warisan tidak masuk akal: tidak masuk akal untuk memiliki hubungan 'is-a' antara anjing dan kerah. Ini jelas merupakan hubungan 'has-a', collar adalah objek yang berkolaborasi. Membuat kerah abstrak hanya agar anjing dapat memilikinya tidak masuk akal.
Saya sering menemukan bahwa kelas abstrak tanpa metode abstrak benar-benar mengekspresikan hubungan 'has-a'. Dalam kasus ini saya biasanya menemukan bahwa kode dapat difaktorkan dengan lebih baik tanpa menggunakan pewarisan. Saya juga menemukan bahwa kelas abstrak tanpa metode abstrak sering kali merupakan bau kode dan setidaknya harus mengarah pada pertanyaan yang diajukan dalam tinjauan kode.
Sekali lagi, ini sepenuhnya subjektif. Mungkin ada situasi ketika kelas abstrak tanpa metode abstrak masuk akal, itu sepenuhnya tergantung pada interpretasi dan pembenaran. Buat keputusan terbaik untuk apa pun yang Anda kerjakan.
Sebenarnya tidak ada artinya jika kelas abstrak tidak memiliki metode abstrak. Kelas abstrak seperti seorang ayah. Ayah ini memiliki beberapa sifat dan perilaku, ketika Anda sebagai seorang anak ingin menjadi anak dari ayah, ayah mengatakan anak itu (Anda) harus begini, itu MOTO kami, dan jika Anda tidak mau, Anda bukan anak saya.
WindowDecorator
danCoffeeDecorator
merupakanabstract
kelas, tetapi tidak ada yang menyertakanabstract
metode.