A class declaration can use the extend keyword on another class, like this: “class C extends B { ... }”.
When a class C extends class B, C automatically has all variables and methods defined in class B. (think of it as a internal copying mechanism)
If class C defines a variable or method that has the same name in class B, class C's definition overrides B's
class B {
int x;
void setIt (int n) { x=n;}
void increase () { x=x+1;}
void triple () {x=x*3;};
int returnIt () {return x;}
}
class C extends B {
void triple () {x=x+3;} // override existing method
void quadruple () {x=x*4;} // new method
}
public class GetRich {
public static void main(String[] args) {
B b = new B();
b.setIt(2);
b.increase();
b.triple();
System.out.println( b.returnIt() ); // prints 9
C c = new C();
c.setIt(2);
c.increase();
c.triple();
System.out.println( c.returnIt() ); // prints 6
}
}
In the above code, class C inherits all class B's variables and methods. Class C overrides the “triple” method, and added a “quadruple” method.
Other classes can extend Class C, as to inherit all members and methods of class C (which includes those in B). In this way, a tree hierarchy is formed.
When class C extends B, we say that C is a “subclass” of A, and A is the “superclass” of C. This is called inheritence, because C inherited from B. Two or more classes can inherit from the same parent class. However, a class can only have one parent. In other words, in Java, you cannot subclass from multiple classes.
In Java, EVERY class is a subclass of java.lang.Object (or subclass of its subclasses). Every class in Java is a node on this giant tree
No hay comentarios:
Publicar un comentario