继承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("测试子类调用父类构造函数:\n");
StudentExtends St = new StudentExtends("李四",30,95);
System.out.println(St.name + "的年龄是" + St.age + ",他的成绩是" + St.grade);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值