java构造器内部多态方法

Posted Always_July

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java构造器内部多态方法相关的知识,希望对你有一定的参考价值。

/**
* Created by Administrator on 2017/3/7.
*/

/**
* @author zhenghong
* @date 2017-03-07-21:21
**/
public class TestC {
public static void main(String []args)
{
new Graph(5);
}
}
class Grp
{
void draw()
{
System.out.println("draw....");
}
Grp()
{
draw();
}
}
class Graph extends Grp
{
private int radius = 2;
Graph(int radius){
this.radius = radius;
}
@Override
void draw() {
System.out.println("draw.."+radius);
}
}

结果 draw...0
初始化Graph ,先初始化父类,父类构造方法中有一个重载的方法,然后调用子类的draw()方法,打印出的结果为draw..0,因为此时子类radius尚未初始化。
Thinking in java 299页
编写构造器的准则 用尽可能简单的方法使对象进入正常状态,如果可以的话,避免调用其他的方法。
在构造器中唯一能安全调用的方法是基类中的final方法。(也适用于private方法,它们自动属于final方法)












































以上是关于java构造器内部多态方法的主要内容,如果未能解决你的问题,请参考以下文章

Java构造器内部的多态方法的行为

Java编程最佳实践之多态

构造器内部的多态方法的行为

构造器内部的多态行为

构造器内部的多态行为

《Java编程思想》笔记 第八章 多态