zoukankan      html  css  js  c++  java
  • 三大修饰符static,final,abstract,接口和抽象类的区别

    package com.cityhero.test;
    
    public class ThreeModifier {
        //static静态的
        //        概念:static可以修饰方法和属性,被static修的方法和属性叫静态方法/静态属性,被该类的所有对象共享
        //        使用:类名.方法/属性    对象.方法/属性(编译器会给出警告,告诉你这是一个静态的方法/属性,可以直接类名.方法/属性使用)
        //        static还可以修饰静态代码块,在类加载时,和static修饰的属性/或方法,按照定义的先后顺序,依次进行初始化工作
        //        用途:例如配置文件读取,可以在类加载时执行一次就OK了,提高性能
        //类加载    jvm在第一次使用某个类时,会到classpath下寻找对应的.class文件,读取并保存起来的过程.类加载的时机:new对象,new子类对象,调用static成员
        //        类加载以后,其实是把类的相关信息保存在方法区,包括类的全限定名,方法和方法描述符,字段和字段描述符
        //        类的class访问标志,属性信息等等这个类的信息存储起来.当我们new一个对象的时候,jvm为对象分配的内存空间实际有很多都是指向方法区的引用
        //        在class文件结构中叫常量池的引用,后面会详细讲解.
        
        
        //final最终的
        //        final修饰的变量只能被赋值一次,也叫常量     
        //        final修饰的类不能被继承,如果类被final修饰,则里面的方法都是final的
        //        自然final修饰的方法不能被覆盖
        //        final修饰的类变量,可以在static静态代码块中赋值一次,或者初始化static属性时赋值 
        //        final修饰的实例变量,可以在构造方法中赋值一次,且需要保证所有的构造方法都赋值了,jvm不会为两者赋默认值
        
        //abstract抽象的
        //        abstract可以修饰方法,类
        //        强制使用多态,不能实例化,可以声明引用
        //        子类继承抽象类时,必须实现所有的抽象方法,除非子类又是抽象的
        
        //interface接口
        //            接口是特殊的抽象类
        //            类时单继承,接口是多继承
        //            都不可以实例化
        //            接口的方法都是抽象的
        //            ....
    }
  • 相关阅读:
    Poj 2017 Speed Limit(水题)
    Poj 1316 Self Numbers(水题)
    Poj 1017 Packets(贪心策略)
    Poj 1017 Packets(贪心策略)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2000 Gold Coins(水题)
    poj 2000 Gold Coins(水题)
  • 原文地址:https://www.cnblogs.com/loginloading/p/6846275.html
Copyright © 2011-2022 走看看