介绍static,final,抽象类以及接口的相关内容

                 今天了解一下java中的static关键字和final关键字,以及接口相关的内容。

                 static关键字即静态的,可以满足两方面的需要:1.只想为特定域分配单一的存储空间,不考虑究竟创建多少个对象,甚至根本就不用创建任何对象;2.希望某个方法不与包含它的类的任何对象关联在一起。static可以修饰域变量也可以修饰方法。用static修饰的域变量,仅仅在类加载时进行初始化,且只执行一次初始化即只有一个副本。它被保存在类的内存的公共存储单元中,可以通过“类名.域名”访问,也可以通过对象引用访问。用static修饰的方法,属于类方法,不属于类的任何对象,在首次访问某类的静态字段或静态方法时,会加载该类,并执行静态初始化语句。需要注意,静态方法只能访问类中的静态域和方法,如果想访问非静态成员需要通过对象。

                      final关键字表示它修饰的类,方法或变量不可被改变。在对常量进行定义时,必须对其赋值,变量的值一旦初始化后,就不能被改变。如果final变量是引用类型的变量,那么代表不能改变这个变量的引用,一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象,但是可以改变这个变量所引用的对象的属性。关于命名:如果在编译的时候,就可以确定final变量的值,此变量的名字应该都大写,如果final变量无法在编译的时候就获得值,而必须在执行的时候才能得到值,使用大小写结合的命名方式。final类:这样的类不可以被继承。

                抽象类:在编写一个对象的时候,将一类事物的共同特征抽象出来,编写一个框架类。在这个类中,会对一些方法进行定义,但是并不具体实现,而是将这些方法的实现放到子类中,不同的子类可以用不同的方式实现这些方法,增强了类设计的灵活性。这个时候类的定义为abstract,没有实现的方法也声明为abstract。如果一个类中定义了一个或多个抽象方法,那么这个类必须限定为抽象类,但是抽象类里面并非一定要有抽象方法。

                接口:即interface关键字,因为interface关键字产生了一个完全的抽象类---接口。java中不支持多重继承,即一个类只能有一个父类,即使是抽象类,单继承使得程序简单且易于管理,但是有一定的局限性,接口可以很好地解决单继承的缺点,一个类可以实现多个接口。在接口中可以定义常量,但是不能有变量,接口的成员属性都会被自动加上public,static和final,而对于接口中的方法,也会自动将它设置为public,接口中的方法只需要声明,不需要方法体。未实现的方法也不需要加abstract关键字。在子类中要用关键字implements来实现接口。接口也可以从父类中派生,也是使用extends,但在接口的继承中,可以继承多个接口。

原文地址:https://www.cnblogs.com/Wangjiaq/p/8569089.html