子级继承父级
例1(父级对象):
//创建的父级类
public class fu{
//私有属性
private String name;//姓名
private char sex;//性别
private String id;//身份证
//无参构造函数
public fu() {
System.out.println("----无参数----");
}
//有参构造函数
public fu(String name,char sex,String id) {
System.out.println("----参数有----");
this.name =name;
this.sex =sex;
this.id = id;
}
//赋值方法
public void setName(String name) {
this.name =name;
}
public void setSex(char sex) {
this.sex =sex;
}
public void setId(String id) {
this.id =id;
}
//输出方法
public String getName() {
return name;
}
public char getSex() {
return sex;
}
public String getId() {
return id;
}
//父级输出方法
public String toString() {
return "名字:" + name + "\t" +
"性别:" + sex + "\n" +
"学号:" + id + "\t" ;
}
}
例2(子级对象):
//创建的子级
public class zi extends fu {
//属性 学校
private String school;
//无参构造函数
public zi() {
System.out.println("----无参数----");
}
//有参构造器
public zi(String name,char sex,String id,String school) {
super(name,sex,id);//继承super中name,sex,id的三个私有属性赋值
this.school =school;//子级自己的属性
}
//子级输出方法
public String toString() {
return "名字:" + getName() + "\t\t" +
"性别:" + getSex() + "\n" +
"学号:" + getId() + "\t\t" +
"学校:" + school;
}
例3(测试):
//创建测试类
public class Test{
public static void main(String){
zi x = new Test("小明",'男',"001","清华北大");
System.out.println(t1.toString());
}
}
继承方法里面的细节其实还是蛮多的
简单阐述一下:
- 通常属性设置私有,父类的属性,子类是无法直接继续赋值和获取输出的。
- 在父类可以创建无参构造函数,然后创建set和get方法,让子类可以通过set和gat方法来赋值和输出父级的属性。方法在上面,就不做多赘述了。
- 但是可以通过继承,在创建子类的有参构造器时调用父级的私有属性进行赋值,但是要在构造器中加入 super(调用的私有属性1,调用的私有属性2,······),并且调用父级的属性必须在最前面,只能先调用父级的属性然后再调用子类自己的属性,否则就会报错!!!
- 但是如果是通过上面方法,直接子类构造函数时调用父类的属性,就相当于跳过了set赋值方法,但是输出还是需要单独调出get方法来继续输出。