Professional Documents
Culture Documents
Nó là một trong những tính chất hướng đối tượng của java:
Kế thừa lại các trường các phương thức của lớp cha (những thành phần
public, protected)
tiết kiệm được thời gian code lại những phần không cần thiết
dễ dàng mở rộng được code.
Ép kiểu trong mối quan hệ kế thừa(Con bên dưới, Cha trên)
Upcasting(Con lên Cha )
Animal cat = new Cat();// gán đối tượng của lớp con cho lớp cha
Thì cat chỉ dụng được các thành phần của lớp cha và một phần của lớp con.
Sự khác nhau:
Nạp chồng:
Thuộc loại đa hình tại thời điểm biên dịch chương trình.
Cùng cấp nhiều chức năng cho nhiều kiểu tham số khác nhau
Xảy ra trong một lớp độc lập hoặc trong quan hệ kế thừa
Ghi đè:
Thuộc loại đa hình tại thời điểm chương trình chạy.
Tăng mức độ tương thích của phương thức của lơp cha trong ngữ cảnh sử
dụng lớp con
Chỉ xảy ra trong quan hệ kế thừa
Lớp Object
Lớp object là tổ tiên của mọi lớp, nếu không chỉ rõ lớp cha trực tiếp thì lớp
cha trực tiếp của nó là object
Phương thức int hahcode(): trả về một mã băm mặc định mổi đối
tượng trong java sẽ có một mã băm duy nhất
StringToString trả về String mô tả vắn tắt thông tin về đối tượng hiện
thời
Class<?> getClass(): trả về kiểu lớp của đối tượng hiện thời
3. TRỪU TƯỢNG
Tính trừu tượng tức là nhìn vấn đề một cách tổng thể chứ không phải
là cụ thể
Lớp abstract là một lớp chứa keyword abstract
Phương thức abstract là phương thức chứa key word abstract trong
khai báo lớp, và nó chỉ khai báo chứ không được định nghĩa, nêu ra
hành động muốn thực hiện nhưng không thực hiện hành động đó
mà lớp con của nó mới thực hiện điều đó
Lớp abstract không thể tạo đối tượng của chính nó, nhưng có thể
làm kiểu của biến để tham chiếu đến các lớp con của nó(tính trừu
tượng)
Một lớp con kế thừa từ lớp abstract thì lớp đó phải implement tất cả
những method nếu không thì phải trở thành một lớp abstract
4. INTERFACE:
Nó là một kiểu tham chiếu trong java, tập hợp những phương thức
abstract và hằng số
Nó mặc định là abstract
Các trường khai báo trong interface là publicstatic final:
Mục đích:
Đạt được tính trừu tượng hoàn toàn
Đạt được mục đích đa kế thừa trong java(một interface có thể
extend nhiều interface)
Đạt được tính chất kết nối lõng lẽo, tức là các thành phần trong
module càng ít liên quan đến nhau càng tốt, dễ dàng quản lí.
Một interface không thể extend một lớp
Abstract class
Tiêu chí interface
Keyword abstract Phải khai báo tường minh Ngầm định là abstract nên ta không cần
khai báo abstract trong
interface
Loại phương thức Có thể chứa tất cả các loại Chỉ có thể chứa các phương thức
phương thức: từ constructors, abstract, default, static, private
static, non-static, abstract
Dữ liệu Có thể chứa tất cả các loại dữ Chỉ có thể chứa hằng số public static final.
liệu: hằng số, không phải hằng
số, static, non-static.
Sự thực thi lẫn nhau Abstract class có thể cung cấp Interface không thể cung cấp
các thực thi cho interface các thực thi cho abstract class
Đa thực thi Abstract class có thể extends Interface chỉ có thể extends các interface
class khác và implements nhiều
interface tùy ý
Access modifier Có thể chứa các thành phần Mặc định các thành phần của interface là
public, protected, private, public. Với phương thức thì từ Java 9 có thêm
private package access thành phần private
Constructors Có thể chứa các constructor có Không hỗ trợ bất kì kiểu constructor nào
hoặc không có tham số nhưng
không chứa default constructor
7. XỬ LÍ NGOẠI LỆ
là một sự kiện không mong muốn làm cho chương trình gián đoạn hoặc kết
thúc không mong muốn
một số nguyên nhân:
Nhập dữ liệu không đúng định dạng
File đầu vào không tồn tại(FileNotFound)
Lỗi logic của lập trình viên
Bộ nhớ đầy khi thực hiện chương trình
Lỗi nghiêm trọng không thế khắc phục bằng chương trình đó gọi là error
Xữ lí ngoại lệ:
Phòng bằng cách lập luận Xứ lí logic:
Xử lí triệt để bằng cách dùng try catch()
Dùng Throws nếu không biết cách xử lí ngoại lệ hoặc lười xử lí, huyển việc
xử lý ngoại lệ đó cho nơi đã thực hiện lời gọi phương thức thông qua
throws.
Check vs UncheckException
CheckException: là ngoại lệ được xảy ra và cảnh báo bởi trình biên dịch
ngay tại thời điểm biên dịch code.ngoại lệ này thì không thể bỏ qua và
bắt buộc người lập trình viên phải xử lí nó
Một số ngoại lệ thường gặp như
FileNotFoundException
ParseException
ClassNotFoundException
IvalidClassException
UncheckException(RunTimeException):là loại ngoại lệ xãy ra tại thời
điểm chạy, ta có thể bỏ qua tại thời điểm biên dịch chương trình, nguyên
nhân do lỗi logic của người lập trình viên
Một số ngoại lệ thường gặp:
NullPointerException
ArrayIndexOutBound
ArthimeticException
ClassCastException