Java修饰符、抽象类、接口

static :1、修饰变量时为静态变量(注),所有实例对象共享这个内存;

               2、一般用类名访问,方便知道该变量为静态变量;

               3、修饰方法时为静态方法,该方法只能访问静态变量,也用类名访问;

               4、不能修饰类;

               5、可用于修饰一段代码,如下:

                      static{

                            Systom.out.println("静态");

                       }

                     该段代码会先于main方法自动执行,不用调用

注:静态变量是独立的存储空间,当有两个实例都拥有同一个静态变量时,其中一个对其进行操作,对另一个实例来说其静态变量的值也同时改变。


final   :1、被修饰的量为常量,一般用全大写;

               2、只能访问,不能修改;

               3、不能用类名访问,必须用对象,所以一般与static一起用,这样便可以用类名访问;

               4、修饰方法时,子类不能重写该方法;

               5、修饰类时,该类不能被继承;


(abstract)抽象:1、修饰类时为抽象类,即为概念类,不能实例化;

                                   2、修饰的方法为抽象方法,该方法没有方法体,必须由子类实现,若没有实现会报错;

                                   3、子类若为抽象类,则其中的抽象方法可不实现;

注:抽象类可以没有抽象方法,但抽象方法所在的类必须为抽象类


(interface)接口:1、接口中只能有常量和方法的声明,不能实例化

                                    2、实现类可以实现多个接口,其中的方法必须全部实现,同时也可继承父类;


抽象类和接口的相同点和区别:

        1、抽象类是创建一个体现某些基本行为的类,并声明各种方法但不实现该类,这点与接口类似;但区别是抽象类中可以有抽象方法和非抽象方法,接口中的方法都为抽象方法;

        2、抽象类中不能有抽象构造方法和抽象静态方法;

        3、接口中的变量只能定义static  final的成员变量;

        4、抽象类和接口中的抽象方法必须全部实现;

        5、子类只能继承一个抽象类,接口的实现可实现多个接口;


你可能感兴趣的:(Java基础)