• 三大修饰符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接口
        //            接口是特殊的抽象类
        //            类时单继承,接口是多继承
        //            都不可以实例化
        //            接口的方法都是抽象的
        //            ....
    }
  • 相关阅读:
    【2017.12.02普及组模拟】送快递
    【NOIP2013模拟联考7】OSU
    顺序表元素位置倒置示例c++实现
    c++字符串排序
    JAVA实现四则运算的简单计算器
    JAVA图形小动画之简单行星运动
    JAVA多线程编程
    ege图形库之简单贪吃蛇(c++)
    ege图形库之动画排序
    c语言中一种典型的排列组合算法
  • 原文地址:https://www.cnblogs.com/loginloading/p/6846275.html
Copyright © 2020-2023  润新知