abstract-求解一个关于JAVA的问题

问题描述

求解一个关于JAVA的问题

我的代码如下:

public abstract class Example1 {
abstract void testAbstract();
Example1(){//(1)首先执行父类构造方法
System.out.println("before testAbstract()");
testAbstract();//如果调用了抽象方法,调用子类覆盖的方法。这里调用Atest类的testAbstract()方法
System.out.println("after testAbstarcat()");
}
public static void main(String args[]){
new Atest();
}
}
class Atest extends Example1{
private int i=1;//(2)使成员变量进行初始化
void testAbstract(){
System.out.println("testAbstract()"+i);
}
public Atest(){//(3)调用子类构造方法
System.out.println(i);
}
}
Eclipse执行结果如下:
before testAbstract()
testAbstract()0
after testAbstarcat()
1

我刚接触java不久,请教为什么是“testAbstract()0”而不是“testAbstract()1”?

解决方案

先执行父类的构造,此时Atest类自己的i还没有初始化,所以是0

解决方案二:

 java初始化过程
 父类变量初始化-父类构造函数-子类变量初始化-子类构造函数。
 也就是父类构造函数中调用testAbstract是访问子类的testAbstract方法,而根据顺序这时候子类的变量i还进行赋值,还是默认值0.

解决方案三:

初始化时,先调用父类构造函数

解决方案四:

有父才有子,有个先后顺序记住就行了

解决方案五:

子类的成员在被调用的时候会自动调用父类的构造函数并初始化父类的相应成员

解决方案六:

先执行父类再执行子类

解决方案七:

这个顺序就是先执行父类,然后是子类,也是为了达到代码的重复利用吧

时间: 2024-11-28 21:16:08

abstract-求解一个关于JAVA的问题的相关文章

求解一个关于java的问题

问题描述 求解一个关于java的问题 这里的temp在前面没有被定义,也没声明,为什么能被使用??如图 解决方案 定义对象的同时可以给对象进行一些赋值的操作 解决方案二: 定义了啊同学Course temp = xxxx那不是定义么 解决方案三: 你想表达啥?没懂你意思呢?Course temp 不是在声明吗? 解决方案四: 一个问题求解Java动态规划求解最长公共子串问题一个搜索问题的求解 解决方案五: 看来这个是连对象都不知道是什么的同志 解决方案六: 定义了 Course cr = new

求解一个JAVA算法,关于固定地图路径的

问题描述 求解一个JAVA算法,关于固定地图路径的 求解,大神在哪里哇,我在想是不是要用A星算法的,不过A星算法不太适应这个地图,黑色的方框表示障碍物,不能穿过,空心圆表示可通过区域. 解决方案 可以考虑蚁群算法,,,,,,,,,,,,,, 解决方案二: 图片奉上 解决方案三: 在线等啊,急急急急急急急急 解决方案四: 在线等啊,急急急急急急急急 解决方案五: 要怎么用JAVA来实现这个算法,求解 解决方案六: 要怎么用JAVA来实现这个算法,求解

java-有一个关于Java的小题目,做了好久做不出来,还请大神帮我

问题描述 有一个关于Java的小题目,做了好久做不出来,还请大神帮我 package com.ustcsoft.javatraining2016.homework1.zhaoyao;public class homework1 { public static void main(String[] args) { Student student = new Student(); Student student2 = new Student(); Student student3 = new Stu

mysql-大神求解,初学java,

问题描述 大神求解,初学java, 在java中创建一个方法,调用方法之后需要从方法中返回两个数组,怎样才能办到 解决方案 方式有很多种, 1.二维数组的方式 2.Vector(不定长数组)嵌套的方式 3.Vector内套数组 3.List>的方式 4.List>的方式 -- 下面我用两种方式给你一个简单的demo: 1.二维数组 // 创建定长二维数组 public static int[][] getArrays(){ // 创建二维数组,2 -- 表示外层数组的长度,3表示里层数组的长度

java-大神求解,初学JAVA,多多指教

问题描述 大神求解,初学JAVA,多多指教 要对字符串进行多次分割怎么办?其中要用, . 还有空格进行分割 并统计相同的结果有多少 解决方案 先按一个符号分,分完之后存数组里,然后把数组里的字符串再按另一个符号分别split一下,以此类推,直到所有的符号都分一边,虽然方法笨,但应该好用 解决方案二: 用String里的split函数进行切割,String str="h,s,df,sd,h"; String s[] = str.split(",");以逗号进行分割.其

一个引用java接口但任何没有实现的源码解读

问题描述 一个引用java接口但任何没有实现的源码解读 有个类一直无法理解,情况是这样的,该类有个内部接口,确定没有任何实现方法,怀疑代码不全需要自己补充,请高手支招确定下,第一次发帖,望大家捧捧场,谢谢! PresenceEventDispatcher继承的一个引用自己内部接口的抽象类,有"<"刚被csdn隐藏了 public class PresenceEventDispatcher extends EventDispatcher<PresenceEventDispat

新手求解一个hibernate3.6.10的问题

问题描述 新手求解一个hibernate3.6.10的问题 先贴代码: User类: public class User { private Integer id; private String nickName; private String password; private String familyName; private String name; private String fullName; private Boolean gender; private String nameS

集合-求解一个二分图,我不清楚这不是不一个二分图,求help

问题描述 求解一个二分图,我不清楚这不是不一个二分图,求help 有N个项目(p)需要评审,每个项目必须要有x个专家(e)来评,每个专家要最多评y个专家,那么专家的数量是:N * x / y,假设这个数字是M,那么项目与专家的关系数为:N * x,或者M * y,N * x = M * y.因为项目和专家都是有分类的,所以对于每个项目来说,选择专家的时候是有权重的,即优先选择同分类的专家,然后根据分类的相近程度选择.假设对于每一个项目来说,备选专家集合都已经按照权重排序了那么怎么样分配,能使每个

请教一个关于java的项目问题

问题描述 请教一个关于java的项目问题 解决方案 类似的http://down.51cto.com/data/2009264http://download.csdn.net/detail/u010777420/5426033 解决方案二: 你自己先试着做呗,你先熟悉Java Web从前台到后端的流程,一块块地实现,自己实现的东西,即使碰到问题,自己解决,收获会很大的. 解决方案三: 这跟我前一段时间写的 差不多, 用 java web, 我博客里有内容分页实现,登录注册,类比的可以写出来这些,