三大修饰符:static、final、abstract

三大修饰符:static、final、abstract

static(静态)

概念:
	1.静态可以修饰属性和方法。
	2.修饰属性我们称为静态属性(类属性),修饰方法称为静态方法(类方法)。
	3.静态成员是全类所有对象共享的成员,只有一份,不因创建多个对象产生多份。
	4.静态成员应该使用类名访问。

调用静态方法:
	在同一个类中有多个静态方法,之间互相调用可以直接写"静态方法的名称"
    在不同类中,调用其他类的静态方法语法:类名.静态方法名称

static特点

1.静态方法可以直接访问静态成员。
2.静态方法不能直接访问非静态成员,可以通过创建对象进行访问。
3.静态方法可以被继承,没有覆盖,没有多态。

类加载

概念:当JVM首次使用某个类,这个类的.class文件必须先加载到内存中。
加载时机:(背)
	创建对象
	创建子类对象
	访问静态属性
	调用静态方法

代码块

{}:动态代码块,执行地位:执行构造方法中的代码之前,初始化属性之后
static{}:静态代码块,执行地位:类加载时执行且只执行一次

abstract

抽象类

抽象类作用:
	1.为子类提供共性属性和方法。
	2.可声明引用,强制使用多态。
抽象方法的作用:
	1.强制子类覆盖,否则子类声明为抽象类。
	
总结:
	1.抽象类不能创建对象,可以声明引用。
	2.抽象类中不一定有抽象方法,而有抽象方法的类一定是抽象类。
	3.继承下,子类必须覆盖父类中抽象方法,否则子类声明为抽象类。
	4.抽象方法,只有方法声明,没有方法实现。

final

概念:最终的。
final可以修饰:
	类:表示最终类,不能被继承。
	方法:表示最终方法,不能被覆盖。
	变量:变量为常量,只能赋值一次。
		局部变量:显示初始化。
		实例变量:显示初始化、动态代码块、构造方法
		静态变量:显示初始化、静态代码块
		基本数据类型变量:值不可变
		引用数据类型:地址不可变

接口

接口与抽象类的异同:
	相同:
		都可生成对应的.class文件。
		都不能创建对象。
		可以声明引用。
		都可以使用Object类中的方法。
	不同:
		 接口只能定义公开静态常量,隐式存在public static final
         接口只能定义公开抽象方法
         没有构造方法、动态代码块、静态代码块
接口的概念:接口是一种能力。
应用:父类提供的方法个数无法满足子类的需求,可通过实现接口的方式扩充子类能力。
拓展:接口是可以多实现的。
    
接口的规范:
	实现接口,需要覆盖接口中的所有抽象方法,否则该类声明为抽象类。
	覆盖时访问修饰符必须是public。

类和接口之间常见的关系

类与类:单继承
	extends 父类名称

类与接口:多实现
	implements 接口1,接口2
	
接口与接口:多继承
	extends 接口1,接口2,接口3

接口的好处

1.降低耦合度
2.更自然使用多态
3.更容易搭建程序框架
4.更容易更换具体实现
5.设计与实现分离
原文地址:https://www.cnblogs.com/lhy8116/p/14189038.html