super关键字:java类中使用super来表示父类的引用。
继承当中的构造方法:
子类在调用构造方法时,必须要先调用父类的构造方法。
在子类的构造方法中使用super([参数列表])来调用父类的构造方法,调用父类构造方法的super()要写在子类构造方法中的第一句。
如果在子类的构造方法中没有显示的调用父类的构造方法,那么会自动调用父类的空参构造方法。
如果在子类的构造方法中既没有显示的调用父类的构造方法,父类中也没有空参的构造方法,那会会造成编译出错。
Undergraduate ug = new Undergraduate("张三", 25, "bachelor", "computer");
Graduate g = new Graduate("李四", 27, "master", "computer");
Java子类的构造方法 学习基础教程
Object类:
一个java类,如果没有继承其它的类,默认它继承Object类
API: Application Program Interface
程序如下:
//Student类
package com.bluedot.test;
public class Student {
private String name;
private int age;
private String degree;
Student(String name, int age, String degree){
this.name = name;
this.age = age;
this.degree = degree;
}
public Student() {
}
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 String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree = degree;
}
public void infor(){
System.out.println("姓名"+name+"年龄"+age+"学历"+degree);
}
}
//Undergraduate 类
package com.bluedot.test;
public class Undergraduate extends Student {
private String major;
public Undergraduate(String name, int age, String degree,String major) {
super(name, age, degree);
this.major = major;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public void infor() {
// TODO Auto-generated method stub
super.infor();
System.out.println("学历"+major);
}
}
//Graduate类
package com.bluedot.test;
public class Graduate extends Student {
private String direction;
public Graduate(String name, int age, String degree,String direction) {
super(name, age, degree);
this.direction = direction;
}
public String getDirection() {
return direction;
}
public void setDirection(String direction) {
this.direction = direction;
}
public void infor() {
super.infor();
System.out.println("研究方向"+getDirection());
}
}
//Test3类
package com.bluedot.test;
public class Test3 {
public static void main(String[] args) {
Undergraduate ud = new Undergraduate("张三",24,"barchor","计算机");
Graduate gr = new Graduate("李四",27,"master","体育");
ud.infor();
gr.infor();
}
}
//不同的类,存在同一包下