1 继承的作用
- 代码复用,更加容易实现类的扩展
- 方便对事务的建模
2 继承原理
继承只能是单继承,即一个派生类可以有多个子类,但一个子类只能继承一个派生类。从上图可知,Teacher类和Student类继承了Persion类中的name 、age属性和eat()方法。
3 DEMO实现
- Person类
package com.git.zmj.expend;
/**
* @author zmj
* 定义Person类
*/
public class Person {
/**
封装Person属性
*/
private String name;
private Integer age;
//获取get set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
/**
* 实现eat()方法
*/
public void eat(){
System.out.println("我今天吃饭了!");
}
}
- Student类
package com.git.zmj.expend;
/**
* @author zmj
* 定义Student类
* 继承Person类
*/
public class Student extends Person{
/**
* 定义Student属性grade
*/
Integer grade;
/**
* 实现study()方法
*/
public void study(String name,Integer age,Integer grade){
this.name = name;
this.age = age;
this.grade = grade;
String str = String.format("我叫%s,我今年%d岁了,我考了%s分",name,age,grade);
System.out.println(str);
}
//定义maim函数作为程序的入口
public static void main(String[] args) {
//实例化Student函数
Student student = new Student();
//调用Student中的study函数
student.study("李四",18,96);
}
}
- Teacher类
package com.git.zmj.expend;
/**
* @author zmj
* 定义Teacher类
* 继承Person类
*/
public class Teacher extends Person{
/**
* 定义Teacher属性grade
*/
Integer teachYear;
/**
* 实现study()方法
*/
public void teach(String name,Integer age,Integer teachYear){
this.name = name;
this.age = age;
this.teachYear = teachYear;
String str = String.format("我叫%s,我今年%d岁了,我教了%d书",name,age,teachYear);
System.out.println(str);
}
//定义maim函数作为程序的入口
public static void main(String[] args) {
//实例化Student函数
Teacher teacher = new Teacher();
//调用Student中的study函数
teacher.teach("张三",34,10);
}
}