资源描述:
《面向对象高级特性(下)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象高级特性(下)本章重点掌握final关键字所修饰的常量、方法和类的用法及其特点。熟练掌握abstract关键字的用法,抽象方法的使用和抽象类的定义。熟练掌握接口的定义、用法及其作用。掌握内部类的概念、特点、应用以及内部类调用方法中的要素。final关键字的使用final:最终的,最后的(修饰类,方法,属性)1)用final修饰的类,表示这个类不可以再被继承,叫最终类一般jdk的工具类,大部分都是用final修饰的,我们写的类,一定不要使用final修饰,struts1.x/2.x,hibernate3.2/3.5/4.0,spring2.5/3.0底层实现
2、全部是基于动态代理实现,如果用final修饰我们写的类,就使用不了动态代理技术(以后再说)2)用final修饰方法,这个方法不可以被重写3)用final修饰变量,该变量初始化以后,不可以再被修改a:用final修饰的局部变量b:用final修饰的方法参数c:用final修饰的引用类型的变量(这个对象的地址不可以被修改,但是对象的属性可以修改)常量:值永远都不在发生变化固定的写法:(public)staticfinal数据类型常量名=值;常量名:最好字母全部大写抽象类---不是具体的类(有的方法没有实现)1)抽象的方法---只有行为的概念,没有具体的实现(只有方法的
3、声明,没有方法的实现,需要靠子类来实现)格式:publicabstract返回值类型方法名字(参数列表);2)含有抽象方法的类,叫做抽象类格式:abstrctclass类名{}3)抽象类的子类必须要实现所有的抽象方法4)抽象类只能被继承,一个具体的类来继承一个抽象类,并且实现其方法5)抽象类不能直接实例化,但可以使用父类声明指向子类对象接口1)一般认为是一个特殊的抽象类2)特点:接口中的方法全部都是抽象方法,接口中的属性全是常量3)对比接口格式和抽象类格式抽象类的格式abstractclass类名{属性构造方法一般方法抽象方法}接口的格式interface接口名{
4、常量抽象方法}发现一个问题:接口的格式更适合于设计,现在的企业开发当中,大部分都使用接口来做设计,抽象类使用较少,而且接口及其灵活4)接口中的常量和抽象方法的简写常量:数据类型常量名=值;抽象方法:返回值类型方法名字(参数);5)接口不能够直接的实例化,可以让实现类来实例化,接口跟实现类直接关系就是一种特殊的继承关系6)接口可以使用父类声明指向子类对象(web开发中经常使用)7)Java中类的继承是比较单一的,尤其功能方法:因为是类是单继承接口可以实现多继承,一个类可以实现多个接口,近似的实现了多继承内部类(InnerClass)在之前讲到的类都是由属性和方法组成
5、的,但在Java中还有一种特殊的语法,就是一个类的内部定义一个类,并将这个类称为内部类。根据内部类在外部类中所处的位置的不同,可将内部类分为:局部内部类和成员内部类。局部内部类是指定义在外部类的方法体内的内部类;成员内部类是指定义在外部类方法体外的内部类。内部类的声明格式:[public]class外部类名{[访问控制符][修饰符]成员;……[访问控制符][修饰符]class内部类名{[访问控制符][修饰符]成员;}}在外部类以外的其他类访问内部类:外部类.内部类内部类对象=new外部类().new内部类();静态内部类创建对象实例:外部类.静态内部类静态内部类对
6、象名=new外部类.静态内部类();小结final关键字表示最终的含义,可以修饰类、方法和属性。(1)使用final关键字修饰类时,表示该类不能被继承,即不能有子类(2)使用final关键字修饰方法时,表示该方法不能被子类的方法重写(3)使用final关键字修饰变量时,变量即变成常量,一旦被赋值就不可以在修改。被abstract关键字修饰的类称为抽象类,抽象类看可以包含非抽象方法和抽象方法。抽象方法不能含有方法体,而是留给抽象类派生出的子类去实现。抽象类不能实例化,但可以定义构造方法,必须通过其子类进行实例化操作。接口是由全局变量和方法,接口必须被子类实现,一个接
7、口可以继承一个或多个接口,但是接口不能实现接口。