Mình có một câu hỏi liên quan đến OOP và muốn nhận được thảo luận từ mọi người.
Tại sao mình phải dùng tính đa hình trong OOP. Ví dụ mình có các lớp như sau:
class HinhHoc
{
function draw()
{
echo "ve hih hoc";
}
function chuVi()
{
echo "tinh chu vi";
}
}
class HinhTron extends HinhHoc
{
function draw()
{
echo "ve hinh tron";
}
function chuVi()
{
echo "tinh chu vi hinh tron";
}
}
class HinhVuong extends HinhHoc
{
function draw()
{
echo "ve hih vuong";
}
function chuVi()
{
echo "tinh chu vi hinh vuong";
}
}
Tức là 2 lớp con HinhTron và HinhVuong sẽ kế thừa 2 function ở lớp HinhHoc rồi override lại. Vậy tại sao mình phải sử dụng tính đa hình trong khi có thể bỏ lớp cha đi và chỉ viết 2 lớp HinhTron và HinhVuong:
class HinhTron
{
function draw()
{
echo "ve hinh tron";
}
function chuVi()
{
echo "tinh chu vi hinh tron";
}
}
class HinhVuong
{
function draw()
{
echo "ve hinh vuong";
}
function chuVi()
{
echo "tinh chu vi hinh vuong";
}
}
như vậy sẽ đỡ phải viết thêm 1 lớp.
Đây là vấn đề mình muốn hỏi mọi người, mong nhận được sự đóng góp của mọi người. Mình cám ơn nhiều
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?