Đến từ Java đất Tôi đã cố gắng để dạy cho bản thân mình Scala. Gần đây tôi đã được toying với các loại dữ liệu Int
và tôi quyết định tìm kiếm các API cho lớp Int here.cố gắng để hiểu "cuối cùng trừu tượng lớp Int tư nhân mở rộng AnyVal trong Scala
gì bối rối tôi đã định nghĩa lớp cho Int
, đó là abstract final
.
tôi xin lỗi nếu tôi không đọc lên về ý nghĩa của abstract
và final
trong Scala trước khi đặt câu hỏi này, nhưng tôi đã tò mò, vì vậy tôi đã nhập bài đăng này ngay lập tức.
Vì vậy, những gì tôi đang cố gắng hiểu là: Các ngữ nghĩa cho abstract
, final
và extends
khác nhau trong Scala? Một lần nữa, đó là sự hiểu biết tốt nhất của tôi rằng trong Java, người ta không thể có abstract
và final
cùng một lúc. Vậy làm cách nào để diễn giải final abstract class Int private extends AnyVal
?
Không, họ không, ít nhất là về cơ bản (bạn vẫn không thể nhanh chóng trừu tượng, bạn không thể kế thừa/ghi đè thức). AFAIK, lý do điều này đã được thực hiện theo cách này là một số thời gian trước đây Int và các loại khác AnyVal chỉ là một sơ khai, viết lại sau đó bởi trình biên dịch tại thời gian biên dịch. Họ không phải là [cam kết này] (https://github.com/scala/scala/commit/4253124eecba6bed38f1dc961c5c4ee39a29f730) –
Ồ, đó là thông tin hữu ích. Cảm ơn bạn đã chỉ ra rằng với tôi – ilango