java继承的作用,实现代码复用。
首先java继承是单继承,也就是说每个子类只能有一个父类,而一个父类可以被多个子类继承。父类(基类,超类)和子类(派生类)是包含关系。子类又可以被其他类继承。
子类会继承父类的所有属性和方法,但私有变量和方法不能被直接访问。私有变量必须通过相应的set(),get()方法进行访问。java声明变量和方法有四种范围:public、默认、protected、private,安全性依次升高。
方法重写(覆盖):子类是可以对父类的方法进行重写的,但是必须满足:1.有继承关系的两个类之间 2.返回值类型,方法名,参数类型类型(个数,顺序)完全一样-----》创建子类的对象时,访问到的是子类的这个重写方法。
自动转型和强制转型:
假如有Student父类,UNStudent子类。则:
//自动转型
Student un = new Student();
un.setName("Firewall");
un.study();//这里访问的是UNStudent子类中的重写方法
//强制转型
UNStudent unst = (UNStudent)un;
unst.printName(); //这里必须对un进行向下转型,才能访问到UNStudent子类中自己创建的方法,否则报错
自动转型的好处:如果存在一个老师教学生的类,使用自动转型就方便很多
public class Teacher {
public void teach(Student s){
s.study();
}
}//只用传入Student s,然后访问各自子类中的study()方法
首先java继承是单继承,也就是说每个子类只能有一个父类,而一个父类可以被多个子类继承。父类(基类,超类)和子类(派生类)是包含关系。子类又可以被其他类继承。
子类会继承父类的所有属性和方法,但私有变量和方法不能被直接访问。私有变量必须通过相应的set(),get()方法进行访问。java声明变量和方法有四种范围:public、默认、protected、private,安全性依次升高。
方法重写(覆盖):子类是可以对父类的方法进行重写的,但是必须满足:1.有继承关系的两个类之间 2.返回值类型,方法名,参数类型类型(个数,顺序)完全一样-----》创建子类的对象时,访问到的是子类的这个重写方法。
自动转型和强制转型:
假如有Student父类,UNStudent子类。则:
//自动转型
Student un = new Student();
un.setName("Firewall");
un.study();//这里访问的是UNStudent子类中的重写方法
//强制转型
UNStudent unst = (UNStudent)un;
unst.printName(); //这里必须对un进行向下转型,才能访问到UNStudent子类中自己创建的方法,否则报错
自动转型的好处:如果存在一个老师教学生的类,使用自动转型就方便很多
public class Teacher {
public void teach(Student s){
s.study();
}
}//只用传入Student s,然后访问各自子类中的study()方法
父类中的构造方法是不能被直接继承的,要通过super关键字
课后总结,权当知识点,还需多敲代码消化理解。如有不对,恳请指正。