继承extends的使用规则

继承的特点
1.只支持单继承
2.子类继承得到父类的成员变量和成员函数,不能继承父类的构造函数
3.子类可以编写自己的成员变量和成员函数
4.同时修改多个子类的共同拥有的成员变量和成员函数(例如同时修改StudentExtends.java和TeacherExtends.java中的成员变量和成员方法)
5.子类的构造函数在调用时,必须先执行父类的构造函数,没有显性(super)的调用父类的构造函数时,子类构造函数默认调用父类无参数的构造方法super()
6.super调用构造函数必须位于第一句与this用法相同

class PersonExtends
{
String name;
int age;

//定义构造函数
PersonExtends()
{
System.out.println("PersonExtends的无参数的构造函数");
}
PersonExtends(String name,int age)
{
this.name = name;
this.age = age;
System.out.println("PersonExtends的无参数的构造函数");
}


void eat()
{
System.out.println("吃饭");
}
void introduce()
{
System.out.println("我的名字叫" + name + ",我今年" + age +"了");
}

}

编写子类student

class StudentExtends extends PersonExtends { int grade; //子类自己的成员变量 StudentExtends()//5.子类的构造函数在调用时,必须先执行父类的构造函数,没有显性(super)的调用父类的构造函数时,子类构造函数默认调用父类无参数的构造方法 { System.out.println("StudentExtends的无参数的构造函数"); //打印出 PersonExtends的无参数的构造函数 StudentExtends的无参数的构造函数 } StudentExtends(String name,int age,int grade) { //this.name = name; //this.age = age; super(name,age); //显性调用父类的构造函数,替代上边两个this语句 this.grade= grade; } void study()//子类自己的成员函数 { System.out.println("我的成绩是" + grade); } }

子类teacher

class TeacherExtends extends PersonExtends { }

测试类

class TestExtends { public static void main(String args []) { StudentExtends student = new StudentExtends(); student.name = "张三"; student.age = 20; student.eat(); student.introduce(); //调用子类自己的成员变量和成员方法 student.grade = 89; student.study(); //测试子类调用父类构造函数 System.out.println("测试子类调用父类构造函数: "); StudentExtends St = new StudentExtends("李四",30,95); System.out.println(St.name + "的年龄是" + St.age + ",他的成绩是" + St.grade); } }

经验分享 程序员 微信小程序 职场和发展