Tôi có đơn giản ba lớp:Làm thế nào để bỏ qua một cấp trong kế thừa gọi siêu từ ông bà trong java?
class A {
public A(int a){ }
}
class B extends A {
public B(int b){ super(b); }
}
class C extends B {
public C(int c){ super(c); }
}
Vì vậy, thứ tự thực hiện trong lớp instancing là C-> B-> A-> B-> C và tất cả các đối tượng được khởi tạo một cách chính xác. Sau đó, câu hỏi:
THỂ tôi một cách nào đó viết một constructor cho lớp C như thế này:
public C(int c){
super.super(c);
}
Ý tưởng là để gọi các nhà xây dựng từ A lớp, không phải từ cha mẹ B. ngay lập tức Đây có phải là có thể ?
Vâng, không có phương pháp nào bị ghi đè ở đây, vì vậy chỉ cần gọi 'A (c) '. (Tôi cho rằng đây là lỗi đánh máy - hãy sửa mã của bạn để minh họa sự cố của bạn). –
Mã này thậm chí sẽ không biên dịch vào lúc này, bởi vì bạn không khai báo các hàm tạo - bạn đang khai báo các phương thức có tên giống như các lớp. –
A có nghĩa là trở thành nhà xây dựng, tôi đoán vậy. OP có lẽ nên suy nghĩ về kiến trúc của mình, mặc dù. – Jeremy