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