Chapter 8 Inheritance and Polymorphism


1. A class C1 derived from another class C2 is called a subclass(extended class or derived class), and C2 is called a superclass(parent class or base class).
Private data fields and methods in a superclass are not accessible outside of the class. Therefore, they are not inherited in a subclass.

2. Keyword super
(1) to call a superclass constructor
(2) to call a superclass method
The constructors of a superclass are not inherited in the subclass. They can only be invoked from the constructors of the subclasses, using the keyword super.
In any case, constructing an instance of a class invokes the constructors of all the superclasses along the inheritance chain. This is called constructor chaining.
If a class is designed to be extended, it is better to provide a no-arg constructor to avoid programming errors, since constructors of its subclass will defaultly invoke super()

3. Overriding method (not overloading)
To override a method, the method must be defined in the subclasss using the same signature and return type as in its superclass.
A private method cannot be overridden, because it's not accessible outside its own class. If a method defined in a subclass is private in its superclass, the two methods are completely unrelated.
A static method can be inherited, but can't be overridden. If a static method defined in the superclass is redefined in a subclass, the method defined in the superclass is hidden.

4. The Object class
Three frequently used methods:
(1) public boolean equals(Object object)
You should use equals(Object obj) to override the equals method in a subclass
(2) public int hashCode()
(3) public String toString()

posts - 403, comments - 310, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

1.28 Java notes

Posted on 2007-04-22 20:23 ZelluX 阅读(116) 评论(0)  编辑  收藏 所属分类: OOP
2007-01-28 23:15:12