继承的特点:
- 减少代码的冗余度,增加看代码的重用性
- 提取子类的共同属性和行为,将通用的方法放置在基类中,将具有特殊用途的方法放置在子类中
- java中继承是单继承,子类继承父类所有非私有属性和方法
- 继承具有传递性,不具有关闭性
继承方法覆盖(重写)
- 子类提供一个方法覆盖从超类继承的方法【方法标签相同,返回值数据类型和访问修饰符都需要父类小或一样,对方法体重写】
package InheritTest;
/*
* @version 父类
*/
public class Person {
protected String name;
protected int age;
//无参构造器
public Person(){}
//带参数构造器
public Person(String name, int age){
this.name = name;
this.age = age;
}
public void showClass(){
System.out.println("姓名:" + name + "\t"+ "年龄:" + age + "\n");
}
}
子类构造器
- 子类构造器可以使用super关键字显示调用基类的构造器,必须放在第一句,若无显示调用,子类构造器自动调用基类默认构造器
package InheritTest;
/**
* 继承父类,重写方法
*
* @author Administrator
*
*/
public class Student extends Person {
private String sex;
public Student() {
/*
* 隐式调用父类的构造器
*/
}
/**
* 带参构造器
* @param name
* @param age
* @param sex
*/
public Student(String name, int age, String sex) {
/*
* 显示调用父类的构造器
*/
super(name, age);
this.sex = sex;
}
/**
* 重写方法
*/
@Override
public void showClass() {
System.out.println("姓名:" + name + "\t " + "年龄:" + age + "\t " + "性别:" + sex + "\n");
}
}
子类构造器
- 子类构造器可以使用super关键字显示调用基类的构造器,必须放在第一句,若无显示调用,子类构造器自动调用基类默认构造器