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接口
        //            接口是特殊的抽象类
        //            类时单继承,接口是多继承
        //            都不可以实例化
        //            接口的方法都是抽象的
        //            ....
    }
  • 相关阅读:
    MyEclipse无法破解的某种解决方法
    SDK Manager无法打开,闪退问题
    虚拟机不能ping通宿主机问题的解决
    Ubuntu下文件编码转换
    二、vertica安装实践
    搭建Samba服务器
    vmtools安装
    一、vertica 安装注意事项
    MFC如何配置使用Win7风格的控件而不是XP风格控件
    VS静态编译
  • 原文地址:https://www.cnblogs.com/loginloading/p/6846275.html
Copyright © 2011-2022 走看看