20130629 类的继承
今天主要讲了类的继承。
1.类的继承
1.1关键字 extends
1.2格式 public class 类名(子类/超类/派生类) extends 类名(父类/基类) {
}
1.3访问修饰符:public、protected、private、默认的(空)
子类继承父类的属性和方法有:子类继承了父类的所有的属性和方法(public、protected、private、默认的)
1.4对于子类,其属性和方法没有显示出来,不代表没有继承;所有都继承,不代表都可以调用。
1.5子类和父类在同一个包下,能调用的方法和属性有:只有私有的属性不能在子类和子类的对象中调用
不同包时,子类中:共有的、受保护的属性和方法及子类的对象中:公有的属性和方法
2 .方法重写
2.1方法重写条件:
2.1.1必需存在继承关系
2.1.2返回值数据类型、方法名、参数个数、参数类型、参数顺序必须要和父类的完全一致
2.1.3类重写方法的访问修饰符可以大于或等于父类方法的访问修饰符
2.2怎样调用重写的方法:
优先调用子类中的方法,若子类中没有,则调用父类中方法
2.3重载和重写的区别:
重写一定要有继承关系
重写:原本在父类中某方法是存在的,只是要对其进行重新定义。
3.自动转型
3.1必须要存在继承关系
3.2格式:
父类名 对象名=new 子类构造方法();
Student stu=new UNStudent();
格式二;:
public 返回值数据类型 方法名(父类名 对象名){
对象名.调用父类中定义过的方法
}
3.3自动转型引起编译错误的原因:
3.3.1编译机制的问题
3.3.2java在编译的时候,只会根据对象名的类型进行编译。
会将你调用的方法,拿到父类中进行一一比较,如果发现没有在父类中定义的方法,则直接抛出编译错误,部分方法不能执行
运行,还是会优先执行子类的方法,如果子类没有,才会执行父类的。
4.多态:
是由方法重载、继承、方法重写、自动转型等技术的组合
举例:大学英语老师要教大学生、高中生、初中生、小学生、幼儿园学生、其他类型学