-
02-05-2013, 12:29 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
- Thứ nhất, nếu một lớp mà chứa abstract method thì bản thân nó phải là abstract class, vì thế trong ví dụ trên của bạn, class A bắt buộc phải có từ khóa abstract.
Điều này bạn có thể đọc lại ở đây:
Mã:http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
Mình có ý kiến như vậy, có gì sai xót mong mọi người chỉ giáo thêm!View more random threads:
- Scanner.close() tại sao phải dùng nó ?
- Làm thế nào để lấy serial của HDD?
- Làm game tương tác môn lập trình mạng trên java
- [HELP] lỗi lạ khi đưa file vào biến
- So sánh C# với C++ và Java. Giống và khác như thế nào?
- Cách đọc nội dung file mp3 trong J2ME?
- Cách đếm số client trong Java?
- Cách khởi tạo mảng động trong lập trình java?
- Fix hộ mình với
- Abstract class khác với class thường ở chổ nào
-
02-05-2013, 04:36 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Abstract class khác với class thường ở chổ nào
Ai giải đáp mình thắc mắc này với, search trên mạng nhiều chỗ mà mình không hiểu rỏ vấn đề này lắm, mình hiểu sơ sơ về cách dùng, nhưng những gì abstract class làm được thì class thường vẫn làm được mà... vd
Mã nguồn PHP:public class ClassA { abstract void print(); // void print() { } } public class ClassB extends ClassA { void print() { System.out.print("Class B"); } }
Mã nguồn PHP:ClassA myClass = new ClassB(); myClass.print() // In ra ClassB
Giả sử mình có một đống class (khoảng 5 class đi) kế thừa từ classA và chỉ có 3 class là sử dụng hàm print với mục đích khác thôi, còn lại là print trống thì mình để abstract lại phải implement rồi bỏ trống, vậy còn cực hơn là không abstract nữa
Nếu so sánh virtual bên C++ thì virtual rõ ràng hơn chỗ này mà:
Giả sử định nghĩa như trên nhưng ta thay abstract bằng virtual, và print trong ClassA in ra là ClassA thì khi đó:
Mã nguồn PHP:ClassA *myClass = new ClassB(); myClass->print(); // In ra ClassB
Mã nguồn PHP:ClassA *myClass = new ClassB(); myClass->print(); // In ra ClassA
Ngồi nghĩ quài hông biết hai cái này khác nhau chỗ nào thế là mình tự nghĩ rằng:
Chỉ để làm chuẩn thiết kế trong lập trình, cho người phát triễn sau dễ dàng code hơn thôi
(Có sai chỗ nào mọi người chỉ giùm mình nha [IMG]images/smilies/smile.png[/IMG] ... Thanks)
-
03-05-2013, 05:30 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
When to use abstract class and interface in Java
Here are some guidelines on when to use an abstract class and interface in Java:
1: An abstract class is good if you think you will plan on using inheritance since it provides a common base class implementation to derived classes.
2: An abstract class is also good if you want to be able to declare non-public members. In an interface, all methods must be public.
3: If you think you will need to add methods in the future, then an abstract class is a better choice. Because if you add new method headings to an interface, then all of the classes that already implement that interface will have to be changed to implement the new methods. That can be quite a hassle.
4: Interfaces are a good choice when you think that the API will not change for a while.
5: Interfaces are also good when you want to have something similar to multiple inheritance, since you can implement multiple interfaces.
Link : http://www.programmerinterview.com/i...bstract-class/
-
27-05-2013, 08:18 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cứ nghĩ nó là 1 gì đó trong cuộc sống đi , đừng cứng nhắt theo mớ lý thuyết .
p/s : làm java thì pải biết callback rồi :d
Ngoại trừ một số ít trường hợp rãnh mũi - má và “râu rồng silicon” xuất hiện sớm, có khi từ tuổi thanh niên do cơ địa, còn lại, đại đa số do căn do lão hoá đã gây nên ba diễn biến: Giảm mô xương gò...
Cách thẩm mỹ má ở tuổi trung niên...