1 继承特点:
子类获得父类(直接的和间接的)的所有成员(包括静态与非静态,甚至private成员,只是子类无法访问而已),但并不会继承父类的构造器。
2 重写父类方法:
方法名 ,参数列表,同是类方法或者实例方法(一个类方法,一个实例方法会导致编译出错)
子类方法返回值类型比父类方法小或相等 , 子类方法声明抛出的异常要比父类类方法声明抛出的异常小或者相等
3 super限定
子类重写了父类的方法,那么若子类想要调用被覆盖的方法呢?,这时就可以使用super(针对实例方法)或父类名(针对类方法)来限定调用的是父里定义的方法。
注意:正如this不能出现在static修饰的方法中一样,super也不能出现在static修饰的方法中,因为this和super都是与对应对象相关的。
若super用于构造器中,则super用于限定该构造器初时始化的是该对象从父类继承得到的实例变量,而不是自己的实例变量。(这就说明了当创建一个子类对象时,同时会调用父类构造器创建一个父类对象)。
4调用父类构造器
子类不会获得父类的构造器,但子类可以调用父类的构造器,类似于同一个类中多个构造器的相互调用。
在一个构造器中,调用另一个构造器用this来完成,在子类中调用父类构造器使用super(super(参数列表))来完成。与this类似。所以使用super调用父类构造器也必须出现在子类构造器执行体的第一行,所以this和super不会同时出现。
子类构造器调用父类构造器通常有以下几种情况:
1 子类构造器执行体的第一行使用super显式调用父类构造器,系统将会根据super传入的实参调用父类相应的构造器。
2 子类构造器执行体的第一行使用this显式调用本类中重载的构造器,系统将会根据this传入的实参调用本类中重载的构造器,执行本类另一个构造器时即会调用父类构造器。
多态:
面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。
1.定义:
多态:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
2.现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。
3.下面是多态存在的三个必要条件
多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。
4.多态的好处:
1)可替换性(substitutability):多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2)可扩充性(extensibility):多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3)接口性(interface-ability):多 态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。如图8.3 所示。图中超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和 Sphere为了实现多态,完善或者覆盖这两个接口方法。
4)灵活性(flexibility):它在应用中体现了灵活多样的操作,提高了使用效率。
5)简化性(simplicity):多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
5.Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。
异常处理:
处理异常有两种方式,一种是抛出异常,抛出异常有手动抛出,一个是定义抛出
手动抛出通过 throw someThrowableObject;
定义抛出通过在方法或者类后添加throws someThrowableObject
还有一种是捕获异常,格式为
try{
}catch(Exception e){
}
finally块只要程序不中断,就一定会执行
try { }catch (Exception e){ }finally { }
如何自定义异常类?定义异常类可以继承Throwable类,也可以继承Exception类