super
一、理解
super.属性:在子类中,调用父类非私有化的成员属性
super.方法:在子类中,调用父类非私有化的成员方法
super():在子类构造方法中调用父类非私有的构造方法
二、案例
需求:编写中国人和日本人的类
分析:
人类:
属性:姓名、性别、年龄
方法:吃饭饭、睡觉觉
中国人类 继承 人类:
属性:身份证
方法:打太极
日本人类 继承 人类:
属性:年号
方法:拍电影
1、主方法入口
package com.xx.test03;
public class Test01 {
public static void main(String[] args) {
Chinese c = new Chinese("侯小康", '男', 23, "12345678901");
c.eat();
c.sleep();
c.playTaiJi();
System.out.println("------------------------------");
Japanese j = new Japanese("波多野结衣", '女', 18, "令和");
j.eat();
j.sleep();
j.playVedio();
}
}
2、Person-父类
package com.qf.test03;
public class Person {
//私有化属性
private String name;
private char sex;
private int age;
//无参数构造方法
public Person() {
}
//有参数构造方法
public Person(String name, char sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
//set/get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat(){
System.out.println(this.name + "吃饭饭");
}
public void sleep(){
System.out.println(this.name + "睡觉觉");
}
}
3、Chinese-子类
package com.xx.test03;
public class Chinese extends Person{
private String id;
public Chinese() {
}
public Chinese(String name, char sex, int age, String id) {
super(name, sex, age);
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public void playTaiJi(){
System.out.println(super.getName() + "打太极");
}
}
4、 Indians -子类
package com.xx.test03;
public class Indians extends Person{
private String yearNum;
public Indians() {
}
public Indians(String name, char sex, int age, String yearNum) {
super(name, sex, age);
this.yearNum = yearNum;
}
public String getYearNum() {
return yearNum;
}
public void setYearNum(String yearNum) {
this.yearNum = yearNum;
}
public void playVedio(){
System.out.println(super.getName() + "拍电影");
}
}