JAVA继承
概念
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
图解
类的继承格式
class 父类 {
}
class 子类 extends 父类 {
}
super和this关键字
super关键字的用法有三种:
1.在子类的成员方法中,访问父类的成员变量。
2.在子类的成员方法中,访问父类的成员方法。
3.在子类的构造方法中,访问父类的构造方法。
super关键字用来访问父类内容,而this 关键字用来访问本类内容,用法也有三种:
1.在本类的成员方法中,访问本类的成员变量。
2.在本类的成员方法中,访问本类的另一个成员方法。
3.在本类的构造方法中,访问本类的另一个构造方法。
码解继承
首先我们来创建一个Father父类,有三个属性、一个输出方法、set和get方法、构造方法就不用我说了吧,不会的看我以前发的。
package com.dzu.demo2;
public class Father {
private String name;
private int age;
private int id;
//构造方法
public Father() {
}
public Father(String name, int age, int id) {
this.name = name;
this.age = age;
this.id = id;
}
//set和get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
//输出方法
public void display(){
System.out.print("姓名:"+name+";年龄"+age+";身份证号:"+id);
}
}
然后我们来创建一个Person1子类,它有属于自己的两个属性hobby和money
package com.dzu.demo2;
public class Person1 extends Father {
String hobby;
int money;
//构造方法
public Person1() {
}
public Person1(String name, int age, int id, String hobby, int money) {
super(name, age, id);
this.hobby = hobby;
this.money = money;
}
}
接着我们再来创建一个Person2子类,它也有属于自己的两个属性high和good
package com.dzu.demo2;
public class Person2 extends Father {
String good;
int high;
//构造方法
public Person2() {
}
public Person2(String name, int age, int id, String good, int high) {
super(name, age, id);
this.good = good;
this.high = high;
}
}
最后我们创建一个Test类
package com.dzu.demo2;
public class Test {
public static void main(String[] args) {
Person1 q = new Person1();
Person2 r = new Person2();
//对q对象进行属性的赋值
q.hobby="滑雪";
q.money=10000;
//对q对象所继承的父类属性进行赋值
q.setAge(25);
q.setId(123123);
q.setName("张三丰");
//调用输出方法
q.display();
System.out.println(";爱好:"+q.hobby+";工资:"+q.money);
System.out.println("-------------------------------------------------");
//对r对象进行属性的赋值
r.good="做饭";
r.high=175;
//对r对象所继承的父类属性进行赋值
r.setAge(30);
r.setId(564565);
r.setName("王室哉");
//调用输出方法
r.display();
System.out.println(";身高:"+r.high+";擅长:"+r.good);
}
}
输出
姓名:张三丰;年龄25;身份证号:123123;爱好:滑雪;工资:10000
-------------------------------------------------
姓名:王室哉;年龄30;身份证号:564565;身高:175;擅长:做饭
Process finished with exit code 0