50 câu hỏi 60 phút
Hãy xem xét đoạn mã sau:
class A
{
int a,b;
float F1,F2;
};
class B:public A
{
}
Hỏi: B sử dụng được các biến thành viên nào của A
a, b, F1, F2
a, b
F1, F2
a, b, F1, F2
Trong C++, khi một lớp (class) kế thừa từ một lớp khác (trong trường hợp này, class B kế thừa từ class A), nó sẽ tự động có quyền truy cập (sử dụng) các thành viên (biến và phương thức) của lớp cha (class A) với điều kiện là các thành viên đó không được khai báo là private
. Trong trường hợp này, các biến thành viên a
, b
, F1
, và F2
của class A không có chỉ định mức truy cập (public
, private
, hoặc protected
), do đó mặc định chúng là private
nếu không có chỉ định khác. Vì class B kế thừa class A theo kiểu public
, nên các thành viên public
và protected
của class A sẽ trở thành public
và protected
tương ứng trong class B. Các thành viên private
của class A vẫn là private
và chỉ có thể truy cập từ bên trong class A. Tuy nhiên, vì không có từ khóa nào chỉ định phạm vi truy cập (public, private, protected), và theo mặc định khi khai báo biến trong một class thì nó là private. Do đó đáp án chính xác là B có thể sử dụng được các biến a, b, F1, F2.
Trong C++, khi một lớp (class) kế thừa từ một lớp khác (trong trường hợp này, class B kế thừa từ class A), nó sẽ tự động có quyền truy cập (sử dụng) các thành viên (biến và phương thức) của lớp cha (class A) với điều kiện là các thành viên đó không được khai báo là private
. Trong trường hợp này, các biến thành viên a
, b
, F1
, và F2
của class A không có chỉ định mức truy cập (public
, private
, hoặc protected
), do đó mặc định chúng là private
nếu không có chỉ định khác. Vì class B kế thừa class A theo kiểu public
, nên các thành viên public
và protected
của class A sẽ trở thành public
và protected
tương ứng trong class B. Các thành viên private
của class A vẫn là private
và chỉ có thể truy cập từ bên trong class A. Tuy nhiên, vì không có từ khóa nào chỉ định phạm vi truy cập (public, private, protected), và theo mặc định khi khai báo biến trong một class thì nó là private. Do đó đáp án chính xác là B có thể sử dụng được các biến a, b, F1, F2.
Khi xây dựng một lớp (class) trong lập trình hướng đối tượng, điều quan trọng nhất là phải xác định rõ hai thành phần chính: Thuộc tính (dữ liệu) và Phương thức (hành vi).
Xe hơi
có thể có các thuộc tính như màu sắc
, hãng sản xuất
, số chỗ ngồi
.Xe hơi
có thể có các phương thức như khởi động
, tăng tốc
, phanh
.Các phương án khác không chính xác vì:
Xây dựng lớp Time trong java như hình trên, phương thức khởi tạo public Time() làm nhiệm vụ: