Nói chung, trong ghi đè, phương thức trong lớp cha và lớp con có cùng tên và tham số. Tuy nhiên, khi nói đến kiểu trả về, phương thức trong lớp con có thể trả về kiểu con của kiểu trả về của phương thức trong lớp cha.
Ví dụ
Nếu bạn quan sát ví dụ sau, siêu lớp có một phương thức có tên là demoMethod () và nó trả về một giá trị của danh sách kiểu. Nếu chúng tôi ghi đè phương thức này, phương thức trong lớp con có thể trả về giá trị thuộc loại Danh sách (nằm trong lớp cha) hoặc, nó cũng có thể trả về kiểu con của Danh sách (kiểu trả về của phương thức trong siêu lớp) chẳng hạn như ArrayList, Stack, Vector, v.v.
Trong trường hợp này, phương thức lớp con trả về một ArrayList, kiểu con của kiểu trả về của siêu lớp, tức là Danh sách. Loại phụ này (ArrayList) được gọi là loại hiệp phương sai .
Ví dụ
Kiểm tra lớpclass Test{ int data =100; Test demoMethod(){ return this; } } public class Sample extends Test{ int data = 1000; Sample demoMethod(){ return this; } public static void main(String args[]){ Sample sam = new Sample(); System.out.println(sam.demoMethod().data); } }
Đầu ra
1000