Inheritance:
Members of a class: instance variables and methods.
Subclass extends the superclass. The subclass inherits from the superclass.
Instance variables are not overridden.
The lowest method in the inheritance tree wins.
IS-A relationship, extends, implements.
HAS-A relationship.
A subclass inherits all public instance variables and methods of the superclass, but not the private instance variables and methods.
Polymorphism:
1. Reference type can be a superclass of the actual object type.
Animal a = new Dog();
2. Polymorphic arrays.
Animal[] a;
3. Polymorphic arguments and return types.
public void takeAnimal(Animal animal);// can take a Dog as arguments.
Non-extensive class:
1. non-public class can be subclassed only by classes in the same package.
2. final class
3. private constructor. Cannot be instantiated.
Non-overridden method:
1. final class
2. final method
The overridden method can't be less accessible.
Overloading a method:
Methods with same name but different arguments lists. No polymorphism. Method signature: name and arugments.
1. Argument lists must be different.
2. Return types can be different but should not be the only difference.
Abstract class and Concrete class:
Abstract class cannot be instantiated.
Abstract methods must be overridden. The class also has to be abstract.
Abstract class can have abstract and non-abstract methods.
Abstract class can implement inherited abstract methods.
Any class that doesn't explicitly extend another class, implicitly extends Object.
The compiler decides whether you can call a method based on the reference type, not the actual object type. The reference is a Remote Control which refers to the corresponding object.
Use instanceof to check the class type.
if(o instanceof Dog) {
Dog d = (Dog) o;
}
Java does not allow multiple inheritance.
A java interface only has abstract methods. Interface methods are implicitly public and abstract, and not encouraged to type these words.
Extends one parent. Interface are the roles to play.
接口往往是对外展示的,方法默认为public和abstract。static方法只供interface定义内使用。default可以定义函数body,可以被复写。
本文详细解析了面向对象编程中的继承与多态概念,包括子类如何继承父类的公共实例变量和方法、多态性的实现方式及其应用场景等。此外,还介绍了抽象类与接口的区别及用法。
1万+

被折叠的 条评论
为什么被折叠?



