在程序中定义一个PersonB类,定义一个PersonB类的子类StudentB类, 再定义一个C2类,再main()方法中生成StudentB类的两个对象。

classPersonB
{
Stringname;
intage;
publicPersonB()
{
System.out.println(“PersonB()被调用”);
}
publicPersonB(StringnewName)
{
name=newName;
System.out.println(“PersonB(StringnewName)被调用”);
}
}
publicvoidintroduce()
{
System.out.println(“我是”+name+”,今年”+age+”岁”);
}
}
classStudentBextendsPersonB
{
//创建StudentB类的无参构造方法,能显示“StudentB()被调用”
publicStudentB(StringnewName,intnewAge)
{
//调用父类的publicPersonB(StringnewName)构造方法,传入newName参数
//将newAge赋值给age属性
}
}
classC2
{
publicstaticvoidmain(String[]args)
{
StudentBs1=newStudentB();
StudentBs2=newStudentB(“张三”,19);
//调用s2的introduce()方法
}
}

class PersonB{
String name;
int age;
public PersonB(){
System.out.println("PersonB()被调用");
}

public PersonB(String newName){
    name = newName;
    System.out.println("PersonB(String newName)被调用");
}

public void introduce()
{
    System.out.println("我是"+name+",今年"+age+"岁");
}

}

class StudentB extends PersonB{
//创建StudentB类的无参构造方法,能显示“StudentB()被调用”
public StudentB(){
System.out.println("StudentB()被调用");
}

    public StudentB(String newName,int newAge)
    {
        //调用父类的publicPersonB(StringnewName)构造方法,传入newName参数
        //将newAge赋值给age属性
        super(newName);
        age = newAge;
    }

}

class C2{
public static void main(String[]args)
{
StudentB s1=new StudentB();
StudentB s2=new StudentB("张三",19);
//调用s2的introduce()方法
s2.introduce();
}
}