某路笔试题

  • 今天写一道在笔试过程中遇到的一道题,题目:
public class A {
	protected int a = 1;

	public A() {
		a = 2;
	}

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

class B extends A {
	protected int b = 2;

	public B() {
		b = 3;
	}
}

class C extends B {
	private int c = 2;

	public C() {
		super();
		c = 10;
		print();
	}

	public void print() {
		System.out.println("" + a + b + c);
	}

}

执行结果

结果这道题涉及到以及相关的知识点有:
1、有关继承方面的知识
2、修饰符作用域的问题
3、成员变量和构造器的执行顺序

思路

1、主方法中,new C(),此时去执行C中的代码
C
2、super关键字,调用父类的构造方法,虽然B中没有super,但是也会默认调用B的父类A的构造方法。
在这里插入图片描述
3、每个构造器中的赋值都会覆盖本类中的成员变量的值,

测试代码

public class A {
	protected int a = 1;

	public A() {
		System.out.println("构造器A:" + a);
		a = 2;
		System.out.println("构造器A:" + a);
	}

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

class B extends A {
	protected int b = 2;

	public B() {
		System.out.println("构造器B:" + b);
		b = 3;
		System.out.println("构造器B:" + b);
	}
}

class C extends B {
	private int c = 2;

	public C() {
		super();
		System.out.println("构造器C:" + c);
		c = 10;
		System.out.println("构造器C:" + c);
		print();
	}

	public void print() {
		System.out.println("" + a + b + c);
	}

}

测试结果如下:

结果

知识点一:关于继承

  • 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为
  • Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力
  • 关于构造器调用
    子类是不继承父类的构造器的,它只是调用(隐式或显式)。
    ①如果父类的构造器带有参数,则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的参数列表
    ②如果父类构造器没有参数,则在子类的构造器中不需要使用super关键字调用父类构造器,系统会默认自动调用父类的无参构造器

知识点二:成员变量赋值

一种方式为在构造器中初始化赋值,那么实验了三种结果:
1、在一个类中,定义一个成员变量i,构造器中不初始化该数,在主方法中输出,值为0;(成员变量会默认赋值)
2、在一个类中,定义一个成员变量i为2;构造器中不初始化该数,在主方法中输出i,值为2;
3、在一个类中,定义一个成员变量i为2;构造器中初始化该数为x,在主方法中输出i,值为x;

知识点三:修饰符作用域

因为在其中看到protected,所以特意再次记忆一下:

作用域问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值