一道有一定难度和挑战性的注重细节的有趣的面试题
目录
- 案例需求
- 不同写法与角度下
- 写法一
- 写法二
- 写法三
- 写法四
- A类
- B类
- 测试类
- 注
- 参考视频
案例需求
不同写法与角度下
写法一
注:方法的修饰符为private
package com.xie.interview;
/**
* 对象属性初始化相关的面试笔试题
* */
public class ObjectAttributeInit {
public static void main(String[] args) {
/**
* 测试
* */
new B();
}
}
class A {
int x = 10;
public A() {
run();
}
/**
* A类自定义的run方法
*/
private void run() {
// 打印x值
System.out.println(x);
}
}
class B extends A {
int x = 20;
public B() {
run();
}
/**
* B类自定义的run方法
* */
private void run() {
// 打印x值
System.out.println(x);
}
}
运行结果
10
20
写法二
注:方法的修饰符为public
package com.xie.interview;
/**
* 对象属性初始化相关的面试笔试题
* */
public class ObjectAttributeInit2 {
/**
* 测试
* */
public static void main(String[] args) {
new B2();
}
}
class A2 {
int x = 10;
public A2() {
run();
}
/**
* A类自定义的run方法
* */
public void run() {
// 打印x值
System.out.println(x);
}
}
class B2 extends A2 {
int x = 20;
public B2() {
run();
}
/**
* B类自定义的run方法
* */
public void run() {
// 打印x值
System.out.println(x);
}
}
运行结果
0
20
写法三
注:加载过程析构
package com.xie.interview.copy1;
/**
* 对象属性初始化相关的面试笔试题
* */
public class ObjectPropertyInit {
/**
* 测试
* */
public static void main(String[] args) {
new B();
}
}
class A {
int x;
public A() {
super();
x = 10;
run();
}
/**
* A类自定义的run方法
* */
private void run() {
// 打印x值
System.out.println(x);
}
}
class B extends A {
int x;
public B() {
super();
x = 20;
run();
}
/**
* B类自定义的run方法
* */
private void run() {
// 打印x值
System.out.println(x);
}
}
运行结果
10
20
写法四
注:类分类,即每个类单独拥有一个.java文件
A类
package com.xie.interview.copy2;
/**
* A类
* */
class A {
int x = 10;
public A() {
run();
}
/**
* A类自定义的run方法
* */
public void run() {
// 打印x值
System.out.println(x);
}
}
B类
package com.xie.interview.copy2;
/**
* B类
* */
class B extends A {
int x = 20;
public B() {
run();
}
/**
* B类自定义的run方法
* */
public void run() {
// 打印x值
System.out.println(x);
}
}
测试类
package com.xie.interview.copy2;
/**
* 对象属性初始化 相关的 面试笔试题
* */
public class ObjectPropertyInit {
public static void main(String[] args) {
new B();
}
}
运行结果
0
20
注
注:最后总结其中最关键的一个关键点在于方法的修饰符是private还是public
参考视频
黑马磊哥