Java父类与子类方法调用顺序

父类 FatherClass
package 父类与子类方法调用顺序;
/**
* 父类
* @author shundong
*
*/
public class FatherClass {
private int i =0;
private String name;
/**
* 父类无参构造
*/
FatherClass(){
System.out.println("--父类无参构造--");
}
/**
* 父类带参构造
* @param name
*/
FatherClass(String name){
this.name=name;
System.out.println("--父类带参构造--"+this.name);
}
/**
* 父类静态代码块
*/
static{
System.out.println("--父类的静态代码块--");
}
/**
* 父类非静态代码块
*/
{
++i;
System.out.println("--父类的非静态代码块--"+i);
}
/**
* 父类的方法
*/
public void speak(){
System.out.println("--父类的方法--"); }
//加入一个main程序后
public static void main(String[] args) {
System.out.println("--父类主程序--");
FatherClass father=new FatherClass("父类");
father.speak();
}
}
结果:

子类 SonClass
package 父类与子类方法调用顺序;
/**
* 子类
* @author shundong
*
*/
public class SonClass extends FatherClass { private String name; /**
* 子类无参构造
*/
SonClass(){
System.out.println("--子类无参构造--");
}
/**
* 子类带参构造
* @param name
*/
SonClass(String name){
this.name=name;
System.out.println("--子类带参构造--"+this.name);
}
/**
* 子类静态代码块
*/
static{
System.out.println("--子类静态代码块--");
}
/**
* 子类的非静态代码块
*/
{
System.out.println("--子类的非静态代码块--");
}
/**
* 重写父类方法
*/
@Override
public void speak(){
System.out.println("--子类重写(Override)了父类的方法--");
}
//然后再加入一个main函数 public static void main(String[] args) { System.out.println("--Main主程序调动--");
FatherClass father=new FatherClass("父亲");
father.speak();
SonClass son=new SonClass("儿子");
son.speak(); }
}
结果

Java父类与子类方法调用顺序的更多相关文章
- java实例变量及方法调用顺序
public class Base { private String name="base"; public Base(){ sayHello(); } void sayHello ...
- Java 多态 父类和子类方法的访问控制权限
Java 多态 父类和子类方法的访问控制权限 @author ixenos 父类和子类方法的访问控制权限 继承是为了扩展类的功能,而这种扩展显然就是对一个原始类的扩展,目的还是向上转型来调用,所以这就 ...
- AsyncTask内的各个方法调用顺序
|- AsyncTask内的各个方法调用顺序:|- 首先,用户调用execute方法,启动AsyncTask .然后在execute方法中:|- 首先调用onPreExecute方法,执行初始化操作. ...
- UIViewController中各方法调用顺序及功能详解
UIViewController中各方法调用顺序及功能详解 UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, ...
- Android之Activity界面跳转--生命周期方法调用顺序
这本是一个很基础的问题,很惭愧,很久没研究这一块了,已经忘得差不多了.前段时间面试,有面试官问过这个问题.虽然觉得没必要记,要用的时候写个Demo,打个Log就清楚了.但是今天顺手写了个Demo,也就 ...
- 【java】子类可以通过调用父类的public方法调用父类的private方法,为什么?
代码1: 打印结果: 代码2: 运行结果: 问题: 代码1中super是父类自己调用自己的add()方法,并在add()方法中调用了私有的del()方法,那为什么打印出来的this是子类? 代码2中t ...
- Java基础--继承方法调用顺序
最近因为面试的原因,回过头来复习基础的知识,都忘光了,准备买本面试书回来啃. 我先把自己测试的结论总结写出来,以后忘记再来看看 如果b类继承自a类,在main方法中new出b的对象(不带参数),那么他 ...
- java中构造代码块、方法调用顺序问题
1. 继承的概念 继承在本职上是特殊——一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 2. 继承中的初始化顺序 从类的结构上而言,其 ...
- JAVA 父类与子类初始化顺序问题
main方法-->子类对象的初始化语句(new className()语句)--->子类构造[因为继承的缘故,它先不会执行]--->父类构造[这一步先不会执行]--->父类静态 ...
随机推荐
- MySQL官方教程及各平台的安装教程和配置详解入口
官方文档入口: https://dev.mysql.com/doc/ 一般选择MySQL服务器版本入口: https://dev.mysql.com/doc/refman/en/ 在右侧有版本选择: ...
- pycharm pip 源修改以及包管理(转载)
转载自(https://www.u3v3.com/ar/1352) pycharm下如何将默认的pip源改成国内能快速访问的源, 以及如何进行包管理 pycharm 是一款进行python项目开发的利 ...
- MySql 主从同步 (库名不同)
主库:192.168.1.250 从库:192.168.1.199 主库 my.ini # For advice on how to change settings please see # htt ...
- Codeforces963C Frequency of String 【字符串】【AC自动机】
题目大意: 给一个串s和很多模式串,对每个模式串求s的一个最短的子串使得这个子串中包含至少k个该模式串. 题目分析: 均摊分析,有sqrt(n)种长度不同的模式串,所以有关的串只有msqrt(n)种. ...
- ram自己写?用IP?
前言 ram这种东西,可以用ip方便,也可以自己写代码描述它. 以下讨论单口ram:8bit*256 流程 1.IP: 使用IP当然是最方便的事情啦,但可移植性差而且可定制性较差. 仿真波形: 2.V ...
- bzoj 1029: [JSOI2007]建筑抢修 (优先队列)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1029 思路: 按结束时间排序,优先选结束时间短的,选完后扔到优先队列里(大的优先),如果选到 ...
- java session创建与获取
一.流程 登录接口-->验证用户名密码-->获取用户实体对象-->创建session (key,value) 其他接口调用-->获取session(key) 二.代码 //登录 ...
- 「HDU6158」 The Designer(圆的反演)
题目链接多校8-1009 HDU - 6158 The Designer 题意 T(<=1200)组,如图在半径R1.R2相内切的圆的差集位置依次绘制1,2,3,到n号圆,求面积之和(n< ...
- LOJ2255. 「SNOI2017」炸弹 (线段树)
本文为线段树做法 (听说可以tarjan缩点+拓扑? 感觉差不多..而且这样看起来方便很多 找到左端点的过程可以看作 点 -> 区间内lowerbound最小的点 -> lowerboun ...
- 【转】linux清屏的几种方法
在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢?下面笔者分享几种在linux下用过的清屏方法. 1.clear命令.这个命令将会刷新屏幕,本质上只是 ...