java继承与初始化
类文件:Print.java
package net.mindview.util;
import java.io.*;
public class Print {
// Print with a newline:
public static void print(Object obj) {
System.out.println(obj);
}
}
类文件:Beetle.java
import static net.mindview.util.Print.*;
class InsectInit {
private int k = printInit("InsectInit.k initialized");
private int i = 10;
protected int j;
InsectInit() {
print("i = " + i + ", j = " + j);
j = 40;
}
private static int x3 = printInit("static Insect.x3 initialized");
static int printInit(String s) {
print(s);
return 48;
}
}
class Insect extends InsectInit {
private int k = printInit("Insect.k initialized");
private int i = 9;
protected int j;
Insect() {
print("i = " + i + ", j = " + j);
j = 39;
}
private static int x1 = printInit("static Insect.x1 initialized");
static int printInit(String s) {
print(s);
return 47;
}
}
public class Beetle extends Insect {
private int k = printInit("Beetle.k initialized");
public Beetle() {
print("k = " + k);
print("j = " + j);
}
private static int x2 = printInit("static Beetle.x2 initialized");
public static void main(String[] args) {
print("Beetle constructor");
Beetle b = new Beetle();
}
}
/*Output:
static Insect.x3 initialized
static Insect.x1 initialized
static Beetle.x2 initialized
Beetle constructor
InsectInit.k initialized
i = 10, j = 0
Insect.k initialized
i = 9, j = 0
Beetle.k initialized
k = 47
j = 39
*/
从输入中可以看出初始化顺序是:
顶层基类static属性--->第二层基类static属性--->导出类static属性--->main方法--->顶层基类属性--->顶层基类构造方法--->第二层基类属性--->第二层基类构造方法--->子类属性--->子类构造方法
转载于:https://www.cnblogs.com/shengwuzhongzi/p/5667986.html
java继承与初始化相关推荐
- java 继承对象 初始化_java中具有继承关系的类及其对象初始化顺序
先说结论 对于具有继承关系的类,它们的类和对象构造顺序为:父类的类构造器() -> 子类的类构造器() -> 父类成员变量的赋值和实例代码块 -> 父类的构造函数 -> 子类成 ...
- java的子类调用构造器的顺序_深入剖析Java继承中的初始化与构造器调用关系
声明:本文为牛旦教育原创,所有权保留,转载请注明来源. 一个对象有两件事:状态和行为. 类中的实例变量表示其对象的状态. 实例方法表示其对象的行为. 类的每个对象都保持自己的状态. 创建类的对象时,将 ...
- Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态
Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...
- Java:继承之super关键字,继承之私有权限,继承之方法重写,继承之object类,继承之简单工厂模式
一.继承的概念及用法 继承背后的思想就是 基于已存在的类来构建新类 当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求 ...
- 「万字图文」史上最姨母级Java继承详解
原创公众号:「bigsai」 除公众号以外拒绝任意擅自转载 文章收录在bigsai公众号和回车课堂 课程导学 在Java课堂中,所有老师不得不提到面向对象(Object Oriented),而在谈到面 ...
- Java继承、重写与重载 笔记
1. Java继承 继承要符合的关系是:is-a,父类更通用,子类更具体. 1.1 继承的特性 子类拥有父类非private的属性,方法. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展. 子 ...
- java类成员初始化_简单了解Java类成员初始化顺序
这篇文章主要介绍了简单了解Java类成员初始化顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类中包含7中成员: 1.静态变量 static 2 ...
- java继承层次结构,在状态模式中实现继承层次结构 - java
我有一个与此非常相似的设计: 这里的NewOrder,Registered&Granted都有通用方法AddOrderline()和Cancel(),因此将这两种方法重构为父类很容易. 当我要 ...
- 通过java理解linux,Java继承的理解
继承: 1)概念 把多个类中相同的成员给提取出来定义到一个独立的类中.然后让这多个类和该独立的类产生一个关系,这多个类就具备了这些内容.这个关系叫继承. 1.1)定义类时,通过"继承&quo ...
最新文章
- oracle跨库 导库,Oracle 用dblink 跨库导数据
- android webview 加载进度和自定义404错误页面
- AOP 代理(AOP Proxy)
- P5895-[IOI2013]dreaming梦想【树的直径,结论】
- python中try命令_Python 异常处理 Python 基础教程 try..except
- C++实现自动发邮件代码,这个是用网易邮箱的。
- 带宽与码元的关系_再遇到码元、速率、、带宽【9】
- 一把“万能钥匙”就能开所有共享单车,撬走3亿元,开发者已被抓捕...
- AlertDialog Unable to add window token null is
- null和空 not null
- sqlmap 基本使用教程--个人笔记
- 为什么这么优秀的女生要找男程序员做老公?
- 淘宝双11大数据分析(数据准备篇)
- 【推文】人间清醒VS梅花痣俏郎君
- 新媒体运营:如何策划出一场完整高效的活动方案?(一) 黎想
- Xshell6安装与使用
- 【颜色空间转换大集合】RGB到YIQ,RGB到HSI和HSI到RGB,RGB到YcbCr,RGB到XYZ颜色转换matlab代码的Demo,含详细的解释
- 使用overlap-add方法计算两个信号的卷积示例
- 苹果企业证书安装包,实现微信等软件的扫码安装
- 在Keil 中找不到对应芯片厂家的型号
热门文章
- android 支付宝沙箱测试环境,Android支付宝沙箱环境使用教程
- 对mysql优化关注_MySQL优化看这篇就对了
- python 对输入的单词进行字典排序_Python-对字典进行排序
- spring mvc 接收List数组类型参数
- 4x4矩阵键盘工作原理及扫描程序_AVR单片机扫描4X4矩阵键盘并数码管显示程序
- android app内嵌h5页面,app内嵌h5页面:前端与原生语言的配合
- linux下storm集群配置,Twitter Storm 系统集群搭建
- java对象赋值_Java 对象不使用时为什么要赋值为 null?
- vue-cli4入门
- Python安装第三方库太慢?配置好这个速度飞起