62,614
社区成员
发帖
与我相关
我的任务
分享
public class tests1 {
public static void main(String[] args) {
B b = new B();
//new一个B 叫b
System.out.println(b.getName());
//打印 父类(在B类中没有重新getName的方法,所以调用A类中的getName,)
System.out.println(b.name);
//打印 A (在B类中没有定义name或者给name赋值,所以调用A类中的初始化值name=A;
//你并没有调用setname去改变name的值,)
b.test();
//打印 子类 A (依旧没有改变name的值。所以还是为A)
}
}
class A {
String name = "A";
// int age = 30;
public String getName() {
System.out.println("父类");
return this.name;
}
}
class B extends A {
// String name = "B";
public void setName() {
name = "B"; // 修改父类属性
}
public void test() {
System.out.println("子类");
System.out.println(name);
}
}
class ExtendsTest {
public static void main(String[] args) {
B b = new B();
System.out.println(b.getName());
System.out.println(b.name);
b.test();
}
}
class A {
String name = "A";
// int age = 30;
public String getName() {
System.out.println("父类");
return this.name;
}
}
class B extends A {
String name = "B";//覆盖父类变量
public void setName() {
name = "B"; // 修改父类属性
}
//如果不覆盖,返回的父类变量
@Override
public String getName() {
return name;//子类变量
}
public void test() {
System.out.println("子类");
System.out.println(name);
}
}