JAVA类-对象

代码块和继承的一道综合应用题:

class HelloA {
public HelloA(){
System.out.println("1.Hello A!父类构造方法");
}
{
System.out.println("2.i'm A class.父类非静态代码块");
}
static{
System.out.println("3.static A 父类静态代码块");
}
}
public class HelloB extends HelloA {
public HelloB(){
System.out.println("4.Hello B! 构造方法");
}
{
System.out.println("5.i'm B class.非静态代码块");
}
static{
System.out.println("6.static B 静态代码块");
}
public static void main(String[] args) {
System.out.println("7.---start---");
new HelloB();
new HelloA();
System.out.println("8.---end---");
}
}

运行结果如下:

在这里插入图片描述
知识点:

代码块:使用{}定义的一段代码**

一、代码块分类
1、定义在方法中的代码块我们把它叫——普通代码块
2、定义在类中的代码块我们把它叫——构造快
3、使用static定义的代码块我们叫——静态构造块
根据在不同的类中又分为:《1》主类静态构造块《2》非主类构造块
二、继承
<1>继承作用是规避大量相同代码的重复。子类可以直接继承父类的操作,可以实现代码的重用。子类最低也维持和父类相同的功能。子类可以进行功能的扩充。如在属性和方法的扩充。
<2>子类对象在进行实例化前一定会首先实例化父类对象。默认调用父类的构造方法后再调用子类构造方法

<3> 在进行继承的时候,子类会继承父类的所有结构。(包含私有属性、构造方法、普通方法)但是这个时候需要注意的是,所有的非私有操作属于显示继承(可以直接调用),所有的私有操作属于隐式继承.

三、执行顺序
<1>同一类中:静态块>构造块>构造方法
在这里插入图片描述
则执行顺序为:3——>2——>1
在这里插入图片描述
执行顺序:6——>5——>4
<2>在主类中:静态块优于main方法执行
在这里插入图片描述
执行顺序:6——>7——>5——>4
<3>继承中,先实例化父类,再执行子类。
在这里插入图片描述
执行顺序为:3——>6——>7——>2——>1——>——>5——>4
<4>静态块被调用一次之后,就不在被调用。
则执行顺序为:3——>6——>7——>2——>1——>——>5——>4——>2——>1——>8
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值