Java面向对象(下)

一:类成员

   static关键字修饰的成员就是类成员,前面已经介绍的类成员有类变量,类方法,静态初始化块三个成分,在java类里只能包含成员变量,方法,初始化块,内部类,构造器5种成员,其中static可以修饰前4种。

      

二:final

   final关键字可修饰类,变量和方法,表示不可修改,修饰变量时既可修饰成员变量,也可以修饰局部变量和形参,一旦获得了初始值,该final变量的值就不可重新赋值。成员变量的初始值可以在定义该变量时指定初始值,也可以在初始化块,构造器中指定初始值。


    如果打算在构造器,初始化块中对final成员变量进行初始化,则不要在初始化之前就访问它的值。
  
    系统不会对局部变量进行初始化,必须由程序员显式的进行初始化,因此使用final修饰局部变量时,既可以在定义时指定默认值,也可以不指定默认值。如果final修饰的局部变量在定义时没有指定默认值,则可以在后面的代码中对其赋初始值,但只能一次,不能重复赋值。

    final修饰引用类型变量时,只保证这个引用类型变量所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以发生改变。
   
    final修饰的方法不可被重写,如果该方法用private修饰,则子类可重新定义该方法,final修饰的方法可以被重载。
class FinalLoad{
	public final void test(){}
	public final void test(String str){}
}

     final修饰的类不可被继承。

三:抽象类

   抽象方法和抽象类 必须使用abstract来修饰,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。
 
 
   static和abstract不能同时修饰某个方法,但他们可以同时修饰内部类。
 
   抽象类体现的是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展,改造,但子类总体上会大致保留抽象类的行为方式。
   

四:接口

   抽象类是从多个类中抽象出的模板,如果将这种抽象进行的更彻底,则可以得到接口,接口里不能包含普通方法,里面的所有方法都是抽象方法。接口是从多个相似类中抽象出来的规范,其不提供任何实现,接口体现的是规范和实现相分离,它定义的是多个类共同的公共行为规范。
   
   [修饰符]  interface 接口名  extends  父接口1,父接口2···
   {
    零个到多个常量定义,
    零到多个抽象方法定义,
    零到多个内部类,接口,枚举定义
    零到多个默认方法或类方法定义
    }
    修饰符:public,空
   
   一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。

    
    由于接口中定义的是多个类共同的公共行为规范,因此接口里的所有成员,包括常量,方法,内部类和内部枚举类都是public访问权限,定义接口成员时,可以省略访问控制修饰符,如果指定访问控制修饰符,则只能使用public控制修饰符。由于接口里没有构造器和初始化块,因此接口里定义的成员变量只能在定义时指定默认值。
    接口里的普通方法不能有方法实现,但类方法,默认方法都必须有方法实现,类方法可以直接使用接口来调用。
     
    接口支持多继承,子接口扩展某个父接口时将会获得父接口里的所有抽象方法,常量。
    
    接口不能用于创建实例,但接口可以用于声明引用类型变量,当使用接口来声明引用类型变量时,此引用变量必须引用到其实现类的对象,接口的主要用途就是被实现类实现。

                     

     

    implements部分必须放在extends之后。

    

     

   

    接口体现的是一种规范,抽象类体现的是一种模板式设计。


五:修饰符汇总


 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值