2015-02-18 17 views
13

Tôi đã nhìn vào tài liệu phát triển Android là gì, và tôi thấy điều này:trực tiếp và gián tiếp lớp con

public abstract class 
Buffer 
extends Object 
Known Direct Subclasses: 
ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer 
Known Indirect Subclasses: 
MappedByteBuffer 

Buffer là một lớp trừu tượng mà không thể được instaniated. Nó kế thừa (mở rộng) Object.

Nhưng tôi nhầm lẫn về các lớp con Trực tiếp và gián tiếp. Các dự đoán tốt nhất của tôi sẽ là: Direct mở rộng trực tiếp từ lớp học siêu hạng. Indirect Nó kéo dài từ một lớp siêu mở rộng trực tiếp lớp học được đề cập.

Rất cám ơn mọi đề xuất,

+5

Bạn là chính xác. Với _indirect_, lớp cha không phải là một kiểu con trực tiếp của lớp được đề cập, nó có thể là bất kỳ số lượng các cấp dưới đây. –

Trả lời

14

Bạn là chính xác. Một mối quan hệ trực tiếp được biết đến ngụ ý rằng lớp học là tổ tiên trực tiếp. A được biết đến mối quan hệ trực tiếp ngụ ý rằng lớp được biết đến là một phân lớp, nhưng thực tế có thể có nhiều cấp độ thấp hơn cấp độ gốc.

3

Với class A:

class B extends A // B is direct subclass of A 
class C extends B // C is indirect subclass of A 
class Z extends C // Z is indirect subclass of A 

bạn sẽ có được điểm.

Các vấn đề liên quan