Java程序初始化过程中方法覆盖问题

原创 2007年10月04日 20:02:00
 代码如下:
/*
 * Test.java
 *
 * Created on 2007-10-4, 19:32:43
 *
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 
*/


/**
 *
 * 
@author Jeffery
 
*/


class Base {

    
int i;

    Base() 
{
        add(
1);
        System.out.println(
"Base" + this.i);
    }


    
void add(int i) {
        
this.i += i;
        System.out.println(
"Base add i" + this.i);
    }

}


class MyBase extends Base {

    MyBase() 
{
        add(
2);
        System.out.println(
"Mybase" + this.i);
    }


    
void add(int i) {
        
this.i += i * 2;
        System.out.println(
"Mybase add i" + this.i);
    }

}


public class Test {

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


    
static void go(Base b) {
        b.add(
8);
    }

}
最后输出i的值为22

分析:按照之前一篇文章总结在主函数中,首先执行new MyBase(),在这个过程中,子类会首先调用父类的构造函数Base(),但Base()函数执行add()方法时特别需要注意, 这个add方法由于是在新建MyBase对象时调用的,所以将会首先查找MyBase类中是否有此方法。所以Base函数中的add(1)实际上是执行的乘2的方法。

最小路径覆盖问题 (网络流解法)

王晓东《线性规划和网络流24题》   求最小点路径覆盖并打印 有向无环图的最小路径覆盖问题包括两种(设G是一个有向无环图,S是G的一个路径集合): (1)最小点路径覆盖:满足对于G中所有的点i...
  • jxy859
  • jxy859
  • 2011年09月04日 17:11
  • 3807

Java程序初始化的顺序是怎样的。

在java语言中,当实例化对象时,对象所在类的所有成员变量首先要进行初始化,当所有成员完成初始化后,才会调用对象所在类的构造函数创建对象。 Java程序的初始化一般遵循3个原则(优先级依次递减):(...
  • u013274055
  • u013274055
  • 2016年12月16日 22:56
  • 1118

8、集合应用-集合覆盖问题

1、问题具象: 有选手集合P={A1,A2,…}。每个选手有一个或多个技能。所有技能集合S={a,b,c,d,e,f,…..}。要求:选出最佳选手集合,包含所有技能,人员集合C。2、解决方案:集合覆...
  • qq_23084801
  • qq_23084801
  • 2017年08月04日 16:28
  • 450

Spark java程序入门(一)初始化spark

把提交spark独立应用时需要初始化spark,告知spark要运行的应用的名字,运行方式,jar包的主类等等 一、在自己的独立应用中使用spark的方法 在代码中初始化spark: SparkCo...
  • h_e_l_l_o_h_i
  • h_e_l_l_o_h_i
  • 2016年10月16日 10:50
  • 654

用分治策略解决棋盘覆盖问题

    在一个2^k * 2^k的方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。    在棋盘覆盖问题中,要用到下图所示的4种不同形态的L型骨牌覆盖给定的...
  • xwz0528
  • xwz0528
  • 2010年09月20日 20:27
  • 1733

骨牌覆盖问题

骨牌覆盖问题,就是用  1x2 大小的骨牌,铺设一个给定大小的一个矩形区域,要求必须铺满,且不可以超出边界。问总的铺设方案数位多少?    这一类问题就是骨牌覆盖问题。 不同规模的数据有不同的...
  • WR_technology
  • WR_technology
  • 2016年06月06日 14:29
  • 654

Java中的重写覆盖问题

首先,重写等于覆盖,常发生于父类与子类之间的变量和方法之间。
  • zhexuehan
  • zhexuehan
  • 2014年11月12日 14:54
  • 387

JAVA程序中代码的初始化

1、类成员变量的初始化循序2、对象的初始化 3、接口的初始化
  • wuhaiwei002
  • wuhaiwei002
  • 2016年01月12日 12:33
  • 132

浅谈java的方法覆盖与变量覆盖

首先,我们看看关于重载,和覆盖(重写)的简明定义: 方法重载:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。 方法覆盖:如果在子类中定义一个方法,其名称、返回类型...
  • kuangxiang_panpan
  • kuangxiang_panpan
  • 2012年04月09日 22:29
  • 5957

骨牌覆盖问题二

描述 上一周我们研究了2xN的骨牌问题,这一周我们不妨加大一下难度,研究一下3xN的骨牌问题? 所以我们的题目是:对于3xN的棋盘,使用1x2的骨牌去覆盖一共有多少种不同的覆盖方法呢? 首先我们可以肯...
  • xiezhongweiwei
  • xiezhongweiwei
  • 2015年04月21日 16:55
  • 1062
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java程序初始化过程中方法覆盖问题
举报原因:
原因补充:

(最多只允许输入30个字)