trong java bất kỳ biến trừu tượng nào ở đó? Tôi đã làm việc này biến trừu tượng trong constructor tôi am nort chắc chắn nhưng tôi nghĩ rằng constructor hỗ trợ static variables.pls làm rõ sự nghi ngờ của tôiCó bất kỳ biến trừu tượng nào trong java không?
Trả lời
Trong java chỉ lớp và phương pháp có thể được trừu tượng. Không thể khai báo biến. Tuy nhiên, bạn có thể có các khai báo biến có kiểu trừu tượng. Xem ví dụ:
public abstract class MyClass { // allowed
public abstract myMethod(); // allowed
public MyClass instance; // allowed
public abstract MyClass instance; // NOT ALLOWED!!
}
Tôi là người mới bắt đầu Java. Làm thế nào là điều này cho phép. >> phiên bản MyClass công khai; // được phép. Đó không phải là tạo ra một thể hiện của một lớp trừu tượng sao? – goldenmean
@goldenmean Vẫn chưa được cải thiện. public MyClass instance = new MyClass() sẽ ném lỗi. (nếu MyClass là trừu tượng) –
Ngôn ngữ danh sách specifacation 7 loại biến:
- lớp biến - khai báo là tĩnh trong một khai báo lớp
- dụ biến - tuyên bố trong một khai báo lớp không sử dụng từ khóa tĩnh
- thành phần mảng - như
i[2]
khi chúng ta tạo ra một mảng nhưint[] i= new int[5]
- phương pháp thông số - Tên giá trị đối số truyền cho một phương pháp
- thông số constructor - giá trị tên đối số truyền cho một constructor
- ngoại lệ xử lý tham số - tạo ra mỗi thời gian một ngoại lệ bị bắt
- biến cục bộ - được khai báo trong một khối (
{ }
) hoặc cho tuyên bố
Bạn có thể sử dụng tất cả các loại biến (trừ # 4) trong một constructor:
class Demo {
static int demo1 = 0; // class variable
int[] demo2 = new int[5]; // instance variable
Demo(int demo3) { // constructor parameter
try {
int demo4 = // local variable
demo2[2]; // array component
} catch(RuntimeException demo5) { // exception-handler parameter
}
demo2 = new int[]{Demo.demo1}; // using class and instance variable
// in a constructor
}
int method(int demo6) { // method parameter
}
}
Từ khóa abstract
không được phép cho khai báo biến.
Có 2 cách xác định các biến trừu tượng trong java mà không sử dụng từ khóa trừu tượng.
cách 1: Xác định một constructor tham số trong lớp trừu tượng, một cái gì đó như:
public abstract class TransactionManager {
private String separator;
public TransactionManager(String separator) {
this.separator = separator;
}
}
Khi xác định một constructor parametrized trong một lớp trừu tượng, các lớp con buộc phải xác định nhà xây dựng riêng của họ và gọi super constructor, do đó vượt qua SEPARATOR riêng của mình.
Cách 2: Xác định tài sản là phương thức getter, một cái gì đó như:
public abstract class TransactionManager {
public abstract String getSeparator();
}
Bằng cách này, giá trị của SEPARATOR tài sản được giao cho được xác định bởi mỗi lớp bê tông.
trừu tượng là một modifier không truy cập trong java được áp dụng cho các lớp học, các phương pháp nhưng không biến.Nó được sử dụng để đạt được trừu tượng mà là một trong những trụ cột của lập trình hướng đối tượng.
Bạn có điều gì đó mới mẻ trong câu trả lời không được đề cập trong các câu trả lời trước không? –
- 1. Biến trừu tượng trong Java?
- 2. “Không thể khởi tạo lớp trừu tượng ... với các phương pháp trừu tượng” trên lớp học mà không cần phải có bất kỳ phương pháp trừu tượng
- 3. Lớp học có thể trừu tượng ngay cả khi không có bất kỳ phương pháp trừu tượng nào không? Nếu có, Whats sử dụng?
- 4. Java - Lớp trừu tượng có chứa các biến?
- 5. PreparedStatement.addBatch trong java có bất kỳ hạn chế nào không?
- 6. Có bất kỳ ESB .NET nào không?
- 7. trừu tượng java enum
- 8. Java: Trường tĩnh trong lớp trừu tượng
- 9. Java nhân bản đối tượng trừu tượng
- 10. Bất kỳ cách nào để có một chức năng mẫu trong một lớp cơ sở trừu tượng?
- 11. Biến tĩnh PHP trong lớp trừu tượng
- 12. Java nguyên thủy có bất biến không?
- 13. Biến/thuộc tính trừu tượng? C#
- 14. Có bất kỳ bất lợi nào đối với SEAM không?
- 15. Java 7 nhưng không phải Java 6: "không phải là trừu tượng và không ghi đè phương pháp trừu tượng"
- 16. Đậu bất biến trong Java
- 17. Các lớp Java wrapper có thực sự bất biến không?
- 18. Có bất kỳ ScalaConsole nào không?
- 19. Có bất kỳ sách ocsigen nào không?
- 20. Java Vòng lên Bất kỳ Số nào
- 21. Chương trình Java chấm dứt bất ngờ mà không có bất kỳ thông báo lỗi nào
- 22. Java AppDomain giống như trừu tượng?
- 23. Có bất kỳ lớp nào trong Java tương tự như android.os.Handler trong Android không?
- 24. Bất kỳ khả năng nào để khai báo các chỉ mục trong C# là một thành viên trừu tượng?
- 25. Không thể tải thêm bất kỳ đối tượng nào có TLS tĩnh
- 26. Stata có bất kỳ cơ chế `try and catch` nào tương tự như Java không?
- 27. Chuyển đổi bất kỳ đối tượng nào thành HTML đẹp trong java
- 28. dlopen: không thể tải thêm bất kỳ đối tượng nào có TLS tĩnh
- 29. Trong JavaScript, tại sao không có bất kỳ đối tượng nào bằng nhau, ngoại trừ chuỗi?
- 30. Có bất kỳ từ dành riêng nào trong SQLite không?
Nếu biến có thể là 'abstract', bạn nghĩ điều đó có nghĩa là gì? Có lẽ bạn nên điều tra động cơ của bạn. – polygenelubricants