Câu hỏi phỏng vấn lập trình hướng đối tượng

     
Trong phần trước, mình đã liệt kê một số thắc mắc về Java khi phỏng vấn. Mặc dù nhiên, khi rộp vẫn họ cũng sẽ phát hiện những thắc mắc về lập trình hướng đối tượng - OOP. Trong phần này hãy cùng xem những câu hỏi phỏng vấn Java phần OOP nhé.

Bạn đang xem: Câu hỏi phỏng vấn lập trình hướng đối tượng

1. Tính nhiều hình là gì?

Tính đa hình được biểu đạt ngắn gọn gàng là “One interface, many implementations”. Nó là một điểm lưu ý của việc rất có thể gán một ý nghĩa hoặc cách sử dụng khác cho 1 thứ nào đấy trong các ngữ cảnh khác nhau, ví dụ là chất nhận được một thực thể ví dụ như một biến, một hàm hoặc một đối tượng có rất nhiều hơn một dạng.Có hai các loại đa hình:Đa hình thời gian compile time: bộc lộ qua method overloadding (nạp ck phương thức)Đa hình thời điểm runtime: mô tả qua kế thừa và interface

2. Runtime polymorphism là gì?

Runtime polymorphism hay có cách gọi khác là dynamic method dispatch.Ví dụ của đa hình lúc runtime là method overriding (Ghi đè phương thức). Khi class phụ thân tham chiếu cho object của class con, method đã được xác định tại runtime. Tức thị nếu chúng ta gọi mang đến method bao gồm sẵn làm việc class thân phụ và được class con định nghĩa lại thì trình biên dịch sẽ điện thoại tư vấn method của class con.Hãy coi ví dụ bên dưới đây:
class Audi extends Car void run() System.out.println("Audi is running safely with 100km"); public static void main(String<> args) car car = new Audi(); car.run();

3. Tính trừu tượng trong Java là gì?

Tính trừu tượng đề cập tới sự việc xử lý các phát minh hơn là việc kiện. Về cơ bản, nó giải quyết và xử lý việc ẩn các cụ thể và hiển thị đều thứ quan trọng cho fan dùng. Vì vậy, chúng ta có thể nó rằng tính từu tượng trong Java là quy trình ẩn các cụ thể triển khai khỏi người tiêu dùng và chỉ lộ cụ thể chức năng đến họ.Có thể giành được tính trừu tượng theo nhị cách:Sử dụng lớp abstractSử dụng interface

4. Sự khác hoàn toàn giữa class abstract với interface

Abstract classInterfaceKhông cung ứng đa kế thừaMột class hoàn toàn có thể implements các interfaceCó thể tư tưởng thân của phương thức, propertyKhông thể định nghĩa code xử lý, chỉ hoàn toàn có thể khai báoCó thể các định phạm vi truy hỏi cậpMọi phương thức, property đông đảo mặc định là publicMột lớp trừu tượng hoàn toàn có thể chứa các constructorKhông chứa constructorMột lớp trừu tượng hoàn toàn có thể chứa biến đổi instanceKhông thể chứa biến instance

5. Tính thừa kế trong Java là gì?

Kế quá trong Java là khái niệm trong các số đó các trực thuộc tính, phương thức của một lớp rất có thể được thừa kế bởi một lớp khác. Nó giúp thực hiện lại mã và tùy chỉnh thiết lập mối dục tình giữa những lớp không giống nhau. Sự kế thừa được ttheer hiện thân hai loại lớp:Super class (Base class - lớp cha)Subclass (Derived class - lớp con)Một lớp kế thừa những thuộc tính, thủ tục được call là subclass, lớp có các thuộc tính, phương thức được thừa kế được điện thoại tư vấn là super class.

6. Những kiểu kế thừa trong Java

Java cung cấp 4 loại kế thừa:Đơn kế thừa: một tờ kế thừa những thuộc tính, cách làm cảu lớp khác, có nghĩa là sẽ chỉ gồm một lớp phụ vương và một lớp conKế thừa đồ vật bậc: Khi có tương đối nhiều hơn một lớp nhỏ hay nói cách khác, nhiều lớp con cùng thừa kế một lớp chaKế thừa nhiều cấp: Lớp con kế thừa các tính năng của lớp thân phụ và dồng thời lớp bé này lại chuyển động như một lớp thân phụ cho lớp nhỏ khác.Kế thừa lai: Sự phối hợp của hai hay không ít phong cách kế thừa.Đa kế thừa: Khi tất cả một lớp nhỏ được thừa kế từ nhì hay các lớp cha.Tuy nhiên, vào Java không cung ứng kế quá lai với đa thừa kế mà bọn chúng chỉ rất có thể được thực hiện thông qua interface

7. Nạp chồng phương thức và ghi đè cách thức là gì?

Nạp chồng phương thức: các phương thức tất cả cùng tên, cùng nằm trong một class nhưng khác nhau về thông số (Số lượng tham số cùng kiểu dữ liệu của tham số) thì được gọi là nạp ông xã phương thứcGhi đè phương thức: ví như lớp con bao gồm cùng cách tiến hành được khai báo trong lớp cha, nó được gọi là ghi đè phương thức.image

8. Rất có thể ghi đè cách thức private hoặc static vào Java không?

Không thể ghi đè cách thức private hoặc static vào Java. Nếu chế tạo một phương thức có cùng giao diện trả về, cùng tham số trong lớp bé thì nó đã ẩn thủ tục của lớp cha. Tương tự, cũng cấp thiết ghi đè một cách làm private trong lớp nhỏ vì ta ko thể truy vấn được phương thức đó trên lớp con, những gì có thể làm chỉ là tạo nên một cách làm khác gồm cùng tên với cách làm của lớp phụ vương trong lớp con.

Xem thêm: Các Giống Xoài Ở Việt Nam - Các Giống Xoài Ngon Được Trồng Nhiều Hiện Nay

9. Đa kế thừa là gì? tại sao nó không được hỗ trợ trong Java?

Nếu tất cả một lớp nhỏ kế thừa những thuộc tính trường đoản cú hai tuyệt nhiêu lớp cha thì nó được call là nhiều kế thừa. Tuy nhiên, Java không cung cấp đa kế thừa.Vẫn đề với đa thừa kế là nếu những lớp phụ thân có cùng tên phương thức, thì trong lúc runtime, trình biên dịch sẽ khó quyết định phương thức nào sẽ tiến hành thực thi từ lớp con. Bởi đó, java không hỗ trợ đa kế thừa. Câu hỏi này được điện thoại tư vấn là việc kim cương (Diamond Problem).image

10. Tính gói gọn trong Java là gì?

Đóng gói là một trong cơ chế mà lại bạn links dữ liệu (biến) với mã (phương thức) với nhau như một đơn vị duy nhất. Ở đây, dữ liệu được ẩn khỏi rứa giới phía bên ngoài và chỉ có thể được truy cập thông qua những phương thức lớp hiện nay tại. Điều này giúp bảo đảm dữ liệu khỏi bất kỳ sửa đổi không cần thiết nào.Có thể đã có được tính gói gọn trong Java bởi cách:Khai báo các biến của class là privateCung cấp các phương thức getter với setter nhằm đọc cùng ghi giá trị của những biến.

11. Association là gì?

Association là một mối qua hệ mà toàn bộ các đối tượng người dùng có vòng đời riêng của chúng và không có chủ sở hữu. Ví như quan hệ thân giảng viên với học viên: Một học tập viên thì sẽ được không ít giảng viên dạy cùng một giáo viên thì sẽ dạy nhiều học viên nhưng không tồn tại quyền download giữa các đối tượng người tiêu dùng và cả hai đều phải sở hữu vòng đời riêng.

Xem thêm: Hướng Dẫn Chi Tiết Cách Pha Sữa Meiji Số 0 1 Dạng Bột, Cách Pha Sữa Meiji Số 0

12. Aggregation là gì?

Aggregation cũng như association, nhưng khác là aggregation có quan hệ sở hữu. Ví như quan hệ thân Khoa với giảng viên, một giáo viên chỉ trực thuộc về một khoa, dẫu vậy nếu thải trừ giảng viên thoát ra khỏi kha thì khoa này vẫn tồn tại.

13. Composition là gì?

Composition là một trong những dạng quan trọng của aggregation. Đối tượng con không tồn tại vòng đời cùng nếu đối tượng thân phụ loại bỏ tất cả đối tượng con thì đối tượng phụ vương cũng sẽ bị loại bỏ bỏ. Ví dụ như trong một ngôi nhà có nhiều căn phòng, nếu chúng ra tháo bỏ toàn bộ các căn nhà đó thì ngôi nhà cũng bị dỡ bỏ

14. Dependency là gì?

Dependency là mối quan khi một đối tượng người dùng A nhờ vào vào đối tượng người dùng B. Những biến hóa ở đối tượng B gồm thể tác động đến đối tượng A. Ví như ta có đối tượng khách mặt hàng và đối kháng hàng. Khi thay đổi thông tin khách hàng ví dụ như kiểu tài liệu của id khách hàng thì tại đơn hàng thông tin id của khách hàng cũng phải thay đổi theo

15. Interface Marker trong Java?

Marker Interface là 1 trong những interface không có ngẫu nhiên phương thức và thuộc tích nào phía bên trong nó. Nó cung cấp thông tin run-time type về object, bởi vậy compiler cùng JVM bao gồm thêm tin tức về đối tượng người tiêu dùng thể tiến hành một số hoạt động hữu ích. Một vài Marker Interface vào Java: Serializable, Cloneable,…Một marker interface có cách gọi khác là một tagging interface.Ví dụ: