Java第三课:继承

1.继承的作用:提高程序的扩展性,提高程序的重用性(编了一个Sudent学生类,那么以后写大学生、小学生类这些都可以不用重新写,直接继承学生类,在这个类的基础上写)
2.Java继承的关键字:extends
格式:
public class 类名(子类、派生类、超类) extends 类名(父类、基类) {

    }

3.现实生活中可以使用继承来实现包含关系(学生包含了小学生、大学生、…)
4.子类可以继承父类的全部内容(属性和方法),但是能继承不一定能使用,这时候要看使用范围——访问修饰符就是用来限定属性和方法在不同的范围中使用:
访问修饰符 同类中 同包中 不同包中 不同包但是有继承关系的子类中
private 可以 不可以 不可以 不可以
默认的 可以 可以 不可以 不可以
protected 可以 可以 不可以 可以
public 可以 可以 可以 可以
在父类的基础上可以定义自己特有的(父类没有的)属性和方法
5.方法重写:例如父类学生类中有一个study()方法,子类大学生类、初中生类、高中生类中也有这个study()方法,他们却不尽相同,各有各的特点,这时候就需要用到重写。
方法重写的规则:
1.必须要存在继承关系。
2.子类重写方法时,方法的访问修饰符可以大于或者等于父类方法的访问修饰符。
3.子类重写方法时,方法的返回值类型,方法名,参数都必须要和父类的方法完全一致。
4.子类重写方法时,方法中的代码需要不同。
调用重写的方法:
当你重写了父类的方法后,那么执行时只会执行子类的方法,而父类的是不会执行的。那么如何调用父类方法——
super关键字:表示调用父类中的方法和属性。super.study();//调用的就是父类的study方法;super()//调用的是父类的构造方法
Student un = new UNStudent();
new关键字后的类名是谁的,如果是子类的类名那么就会优先执行子类的方法,如果子类没有要调用的方法,才会执行父类中定义的方法。
6.自动转型
要使用自动转型,那么就必须要存在继承关系。
自动转型的格式是:
父类名 对象名 = new 子类名();
缺点是无法调用父类中没有定义过的属性和方法,如果调用就会编译报错。
引起错误的原因是Java在编译时,只会根据对象名的名类型去查找你调用的属性和方法是否存在,如果存在则编译通过;如果不存在则编译报错。

猜你喜欢

转载自blog.csdn.net/Findingxu/article/details/51511533