java中的static 关键字与多态

来源:互联网 发布:知念和凉介抱在一起睡 编辑:程序博客网 时间:2024/06/05 18:31
1:static 关键字
     静态的 与具体的对象无关,归类所有的,全局的,归类的所有对象共享的 
          通过类名.静态属性或者方法来访问
     非静态的方法中可以访问静态的属性
     静态方法中不可以访问非静态属性 
        静态的部分先放到内存中,不是静态的东西是不会放到内存的,必须用new关键字来放到内存中
       
     类的加载顺序:
      单个类:静态属性与方法  普通属性与方法  构造器
     继承关系中:
              父类的静态属性与方法  子类的静态属性与方法
              父类的普通属性与方法   父类构造器
              子类的普通属性与方法   子类构造器

static修饰符
        static修饰符能够与属性、方法和内部类一起使用,表示静态的。类中的静态变量和静态方法能够与类名一起使用,不需要创建一个类的对象来访问该类的静态成员,所以,static修饰的变量又称作“类变量”。

static属性的内存分配

         一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。

static的变量是在类装载的时候就会被初始化,即,只要类被装载,不管是否使用了static变量,都会被初始化。
static的基本规则
  ·一个类的静态方法只能访问静态属性
  ·一个类的静态方法不能直接调用非静态方法,但是非静态方法中可以调用静态方法
  ·如访问控制权限允许,static属性和方法可以使用类名加“.”的方式调用,也可以使用实例加“.”的方式调用
  ·静态方法中不存在当前对象,因而不能使用this,也不能使用super
  ·静态方法不能被非静态方法覆盖
  ·构造方法不允许声明为static的
  注,非静态变量只限于实例,并只能通过实例引用被访问。
              
2.多态: (同一种行为体现出来不同的状态)
  1.编译期的多态 方法的重载 overload
 在同一个类中,方法名相同,参数列表不同 与返回值类型无关
     参数列表不同包括:参数个数不同
                   参数类型不同
     在调用的时候 系统会根据调用者的参数自动识别该调用的方法
     在同一个类中 不允许出现方法名相同 参数列表也相同的方法
              也不允许出现方法名相同 参数列表也相同但返回值类型不同的方法

  2.运行期的多态 方法的重写 Override
              在继承关系当中子类对父类的方法重新实现
              方法名相同  参数列表也相同
               1.返回值类型与父类相同或者可以自动隐式转换成父类的返回值类型
               2. 访问修饰符的权限不能低于父类的访问权限(public最高)
               3.子类抛出的异常不能高于父类抛出的异常
   注:基本类型不能转换,必须保持一致
 
     
     
0 0
原创粉丝点击