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接口
        //            接口是特殊的抽象类
        //            类时单继承,接口是多继承
        //            都不可以实例化
        //            接口的方法都是抽象的
        //            ....
    }
  • 相关阅读:
    Apache、NGINX支持中文URL
    JS中关于clientWidth offsetWidth scrollWidth 等的含义
    设置apache登陆密码验证
    通过java代码访问远程主机
    win7
    Netty从没听过到入门 -- 服务器端详解
    分块分段
    数论-佩尔方程
    数论-毕达哥拉斯三元组
    HDU 5613-Baby Ming and Binary image
  • 原文地址:https://www.cnblogs.com/loginloading/p/6846275.html
Copyright © 2011-2022 走看看