多 态★★★★★(面向对象特征之一):函数本身就具备多态性,某一种事物有不同的具体的体现。
体现:父类引用或者接口的引用指向了自己的子类对象。//Animal a = new Cat();
多态的好处:提高了程序的扩展性。
多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。(前期不能使用后期产生的功能,即访问的局限性)
多态的前提:
1:必须要有关系,比如继承、或者实现。
2:通常会有覆盖操作。
匿名内部类:没有名字的内部类。就是内部类的简化形式。一般只用一次就可以用
这种形式。匿名内部类其实就是一个匿名子类对象。想要定义匿名内部类:需要前提,内部类必须继承一个类或者实现接口。
匿名内部类的格式:new 父类名&接口名(){ 定义子类成员或者覆盖父类方法 }.方法。
匿名内部类的使用场景:
当函数的参数是接口类型引用时,如果接口中的方法不超过3个。可以通过匿名内部类来完成参数的传递。
其实就是在创建匿名内部类时,该类中的封装的方法不要过多,最好两个或者两个以内。
异 常:★★★
异常处理原则:功能抛出几个异常,功能调用如果进行try处理,需要与之对应的catch处理代码块,这样的处理有针对性,抛几个就处理几个。
特殊情况:try对应多个catch时,如果有父类的catch语句块,一定要放在下面。
throw 和throws关键字的区别:
throw用于抛出异常对象,后面跟的是异常对象;throw用在函数内。
throws用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。throws用在函数上。
《》《》《》《》《》《》《》《》《》《》
package iexame.com;
public class Test6 {
/**
* @param args
* 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,
* 并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
*/
// TODO Auto-generated method stub
private int num=34;
private void show(){
System.out.println("外部函数");
}
class Inner
{
private int num=45;
private void show1(){
System.out.println("内部函数"+num);
System.out.println("外部成员变量num="+Test6.this .num);
show();
}
}
void fun(){
Inner iner=new Inner();
iner.show1();
}
public static void main(String[] args){
Test6 T=new Test6();
T.fun();
}
}
|