- vừa được xem lúc

Java SE 8 Oracle Certified Associate 1Z0-808 - Câu hỏi 9

0 0 17

Người đăng: Tommy Le

Theo Viblo Asia

1. Câu hỏi

2. Phân tích

Đây là 1 câu hỏi không quá khó nhưng rất dễ làm sai nếu không hiểu rõ bản chất của tính kế thừa và ép dữ liệu (cast).

Syntax code

Class A and B khai báo public trong package com.udayan.oca. Method print() của A được overridden bởi B chính xác. Method print() cũng là public không có lỗi trong quá trình compile.

Phân code trong hàm main

Let's check the code inside main method.

A obj1 = new A(); 

=> Tạo Object obj1 của class A.

B obj2 = (B)obj1; 

=> Object obj1 là 1 instance của class A, vậy lúc runtime obj2 sẽ tham chiếu đến đối tượng class A. Vì class con (sub type) không được tham chiếu đến Object của class cha (super). Nên sẽ xảy ra lỗi ClassCastException lúc runtime.

Để dễ hiểu hơn ta có thể hình dung bài toán cụ thể: Ví dụ class B (sub-class) có thêm 1 số thuộc tính và method mà class A (super) không có. Khi gán B obj2 = (B)obj1; lúc đó obj2 sẽ có quyền theo tác với các thuộc tính này, nhưng vì class A không có nên nó sẽ không biết để thao tác.

Tham khảo thêm

Đáp án:

image.png

3. Kết luận

Bạn có thể gõ code vào IDE để chạy lại và kiểm tra Source cho câu hỏi

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 302

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 277

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 50

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 194

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 71

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 139