Sub class và Super class

Một số note về Superclass và Subclass

  • Một classs extends từ class khác được gọi là subclass
  • Một class mà được class khác extends được gọi là superclass
  • Superclass của tất cả các class trong java là java.lang.Object (mặc định, dù không dùng từ khoá extends)
  • SubClass cũng có kiểu là superclass, instance của subclass được dùng ở mọi nơi mà instance của super class có thể sử dụng.
  • Tất cả fields, method, nested types của superclass có thể được sử dụng cho subclass
  • Contructors không được extends, nhưng trong contructors của subclass phải gọi contructors của superclass (mặc định nếu không gọi thì contructors không parammeter ở superclass sẽ được gọi)
  • Không thể gọi khối khởi tạo của superclass từ subclass

Rules về extends

  • Subclass không extends các member private của superclass
  • Subclass extends toàn bộ các member public và protected của subclass, không quan trọng package là gì
  • Trường hợp subclass cùng package với superclass thì sẽ extends thêm các member không có modifier (package-private)
  • Nếu muốn override method từ supercass thì phải cùng là static hoặc non-static
  • Có thể đặt tên field cùng tên với super class, không phân biệt static hay non-static

Rules về extends Fields

  • Có thể sử dụng trực tiếp như các field khác của subclass
  • Ẩn bởi subclass – khai báo tên field giống với tên trong superclass (không nên dùng)
  • Bổ sung – subclass có thể khai báo các field không có tên trong superclass

Rules về extends Methods

  • Sử dụng trực tiếp
  • Overridden – khai báo method có cùng tên, kiểu return với superclass
  • Ẩn bởi superclass – khai báo method static có cùng tên và kiểu return với superclass
  • Bổ sung – subclass có thể khai báo các method không có tên trong superclass

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *