编程思想_多态

207 阅读1分钟

1、多态

多态的作用就是消除类之间的耦合关系。
多态(也称为动态绑定,后期绑定或者运行时绑定)。

2、方法调用绑定

将一个方法调用同一个方法主体关联起来被称作绑定。若在程序执行前进行前进行绑定,叫做前期绑定。在运行时根据对象的类型进行绑定,后期绑定(动态绑定,运行时绑定)。机制:编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体,并加以调用。

Java中除了static和final方法,其他方法都是后期绑定,我们不必判定是否应该进行后期绑定,它会自动发生。

3、构造器调用顺序

  • 基类的构造器总是在导出类的构造过程中被调用,按照继承层次逐渐向上链接
  • 如果没有明确指定调用某个基类的构造器,它就会默默地调用默认构造器
class Bread {
    Bread() { print("Bread()"); }
}
 
class Cheese {
    Cheese() { print("Cheese()"); }
}
 
class Lettuce {
    Lettuce() { print("Lettuce()"); }
}
 
class Meal {
    Meal() { print("Meal()"); }
}
 
class Lunch extends Meal {
    Lunch() { print("Lunch()"); }
}
 
class PortableLunch extends Lunch {
    PortableLunch() { print("PortableLunch()"); }
}
 
class Sandwich extends PortableLunch {
    private Bread b = new Bread();
    private Cheese c = new Cheese();
    private Lettuce l = new Lettuce();
 
    private Sandwich() { print("Sandwich()"); }
 
    public static void main(String[] args) {
        new Sandwich();    
    }
}

// 运行结果
Meal()
Lunch();
PortableLunch();
Bread();
Cheese();
Lettuce();
Sandwich();