Thinking In Java 第八章 多态

这篇博客探讨了Java中的多态性,又称后期绑定或运行时绑定。内容涵盖多态的概念、后期绑定的定义以及其在Java中的应用。强调了私有方法和静态方法的特性,并指出只有普通方法调用具备多态性。此外,还详细解释了构造器调用与对象初始化、销毁的顺序,以及在构造器内部如何安全地使用方法。最后,提到了协变返回类型在方法覆盖中的应用。
摘要由CSDN通过智能技术生成

1、多态:也称作后期绑定、动态绑定、或运行时绑定。

2、后期绑定:运行时根据对象类型进行绑定。后期绑定也叫动态绑定或运行时绑定。Java中除了static方法和final方法之外,其他所有的方法都是后期绑定。

3、私有方法默认是final的,无法被重写。

4、域与静态方法不具备多态性。只有普通方法调用可以是多态的。

5、组合、继承中构造器的调用顺序:

<1>调用基类构造器。

<2>按声明顺序调用成员的初始化方法。

<3>调用导出类构造器的主体。

class Meal {
    Meal() {
        System.out.println("Meal()");
    }
}

class Bread {
    Bread() {
        System.out.println("Bread()");
    }
}

class Cheese {
    Cheese() {
        System.out.println("Cheese()");
    }
}

class Lettuce {
    Lettuce() {
        System.out.println("Lettuce()");
    }
}

class Lunch extends Meal {
    Lunch() {
        System.out.println("Lunch()");
    }
}

class PortableLunch extends Lunch {
    PortableLunch() {
        System.out.println("PortableLunch()");
    }
}

public class Sandwich extends PortableLunch {

    private Bread b = new Bread();
    private Cheese c = new Cheese();
    private Lettuce l = new Lettuce();

    public Sandwich() {
        System.out.println("Sandwich()");
    }

    public static void main(String[] args) {
        new Sandwich();
    }
}

6、构造动作一经发生,那么对象所有部分的全体成员都会得到构建。

7、继承中,对象销毁的顺序应该和初始化顺序相反。对于字段,则意味着与声明的顺序相反。

8、构造器内部多态方法的行为。初始化实际过程:

<1>在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制的零。

<2>调用基类构造器。

<3>按照声明顺序调用成员的初始化方法。

<4>调用导出类的初始化主体。

9、在构造器内部唯一能够安全调用的方法是基类中的final方法(也适用于private方法,它们自动属于final方法)。这些方法不会被覆盖。

10、协变返回类型:导出类中的被覆盖方法可以返回基类方法的返回类型的某种导出类型,即可以返回更具体的类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值