Đ Truyền loại trong Java được sử dụng để chuyển đổi các đối tượng hoặc biến của một kiểu này sang kiểu khác. Khi chúng tôi chuyển đổi hoặc gán một kiểu dữ liệu này cho một kiểu dữ liệu khác, chúng có thể không tương thích. Nếu nó phù hợp thì nó sẽ hoạt động trơn tru, nếu không có khả năng bị mất dữ liệu.
Kiểu truyền kiểu trong Java
Truyền kiểu Java được phân loại thành hai loại.
- Truyền rộng rãi ( Ngụ ý ) - Chuyển đổi loại tự động
- Truyền thu hẹp ( Rõ ràng ) - Cần chuyển đổi rõ ràng
Đúc mở rộng (loại nhỏ hơn đến lớn hơn)
Mở rộng T Chuyển đổi ype có thể xảy ra nếu cả hai loại đều tương thích và loại đích lớn hơn loại nguồn. Mở rộng Truyền diễn ra khi hai loại tương thích với nhau và loại mục tiêu lớn hơn loại nguồn .
Ví dụ1
public class ImplicitCastingExample { public static void main(String args[]) { byte i = 40; // No casting needed for below conversion short j = i; int k = j; long l = k; float m = l; double n = m; System.out.println("byte value : "+i); System.out.println("short value : "+j); System.out.println("int value : "+k); System.out.println("long value : "+l); System.out.println("float value : "+m); System.out.println("double value : "+n); } }
Đầu ra
Giá trị bytebyte value : 40 short value : 40 int value : 40 long value : 40 float value : 40.0 double value : 40.0
Mở rộng truyền kiểu lớp
Trong ví dụ dưới đây, Con lớp là loại nhỏ hơn mà chúng tôi đang gán nó cho Parent loại lớp là loại lớn hơn do đó không cần truyền.
Ví dụ2
class Parent { public void display() { System.out.println("Parent class display() called"); } } public class Child extends Parent { public static void main(String args[]) { Parent p = new Child(); p.display(); } }
Đầu ra
Parent class display() method called
Truyền thu hẹp (loại lớn hơn đến nhỏ hơn)
Khi chúng tôi chỉ định một loại lớn hơn cho một loại nhỏ hơn, Truyền rõ ràng là bắt buộc.
Ví dụ1
public class ExplicitCastingExample { public static void main(String args[]) { double d = 30.0; // Explicit casting is needed for below conversion float f = (float) d; long l = (long) f; int i = (int) l; short s = (short) i; byte b = (byte) s; System.out.println("double value : "+d); System.out.println("float value : "+f); System.out.println("long value : "+l); System.out.println("int value : "+i); System.out.println("short value : "+s); System.out.println("byte value : "+b); } }
Đầu ra
double value : 30.0 float value : 30.0 long value : 30 int value : 30 short value : 30 byte value : 30
Thu hẹp Loại Lớp
Khi chúng tôi chỉ định loại lớn hơn cho một loại nhỏ hơn, thì chúng ta cần phải rõ ràng typecast nó.
Ví dụ2
class Parent { public void display() { System.out.println("Parent class display() method called"); } } public class Child extends Parent { public void display() { System.out.println("Child class display() method called"); } public static void main(String args[]) { Parent p = new Child(); Child c = (Child) p; c.display(); } }
Đầu ra
Child class display() method called