Skip to main content

Lớp ảo là gì?

Một lớp ảo là một lớp chỉ được phân bổ một lần trong bộ nhớ, sao cho trẻ em của lớp đó chỉ sử dụng một bản sao của lớp cha mẹ được thiết lập trong bộ nhớ.Một lớp là một nhóm các đối tượng chia sẻ các đặc điểm hoặc thuộc tính chung.Tạo một lớp ảo cung cấp các ngôn ngữ lập trình hướng đối tượng, khả năng sử dụng nhiều kế thừa khi các lớp cha mẹ thế hệ thứ hai hoặc nhiều hơn được lấy từ các lớp cơ sở tổ tiên chung.Tùy thuộc vào ngôn ngữ lập trình máy tính được tham chiếu, từ khóa ảo, từ khóa tương tự hoặc cú pháp và ngữ nghĩa của một lớp được sử dụng để ngụ ý rằng một lớp cụ thể được coi là ảo.là khi một lớp con có thể được lấy từ nhiều lớp cha mẹ cùng một lúc.Trong một ngôn ngữ lập trình như C ++, một lớp có thể kế thừa tất cả các chức năng của thành viên và các chức năng thành viên từ cả hai lớp cha cùng một lúc và có quyền truy cập vào cả hai bộ dữ liệu và chức năng của cha mẹ.Các ngôn ngữ khác hỗ trợ nhiều kế thừa bao gồm Perl, Python, TCL và Eiffel.Đây được gọi là vấn đề kim cương, cái tên xuất phát từ cách thức thứ bậc sẽ nhìn vào tình huống này.Khi một chương trình trình biên dịch cố gắng khởi tạo một lớp, chẳng hạn như một lớp cháu được làm từ hai lớp phụ huynh với một ông bà chung, hai bản sao của ông bà được tạo ra trong bộ nhớ, một cho mỗi phụ huynh.Do sự mơ hồ gây ra bởi nhiều bản sao của cùng một ông bà trong bộ nhớ, trình biên dịch không thể xác định được bản sao của ông bà mà cháu nội nên sử dụng để truy cập dữ liệu hoặc chức năng của ông bà.Để khắc phục tình trạng này, trong C ++, ông bà được biến thành một lớp ảo khi tuyên bố cha mẹ.Điều này khiến trình biên dịch chỉ tạo một bản sao của ông bà trong bộ nhớ mà cả hai cha mẹ chia sẻ.Một khi ông bà đã trở thành một lớp ảo, trình biên dịch không có vấn đề gì khi quyết định làm thế nào cháu nội nên tiếp cận ông bà vì chỉ có một bản sao của ông bà.trong hoặc trở thành cơ sở cho các hệ thống phân cấp lớn hơn nhiều trong tương lai.Việc sử dụng thích hợp của một lớp ảo mang lại cho hệ thống phân cấp lớp lớn hơn trong phát triển;Tuy nhiên, chúng có khả năng gây ra lỗi khó định vị.Nghiên cứu về các nguyên tắc kỹ thuật lập trình máy tính vững chắc sẽ giúp đảm bảo rằng các tác dụng phụ bất ngờ từ tổ chức chương trình không phù hợp không xảy ra.