语法:static数据类型 变量名web
使用static修饰的属性咱们认为是类的属性,不带static修饰的属性咱们认为是对象的属性jvm
第一种方式:类名.类属性(推荐使用)
第二种方式:对象实例.类属性svg
咱们把常量通常定义成static,或者当前类建立的每个对象都有相同的属性也能够把这种属性定义成static的code
对象属性生命周期:
建立对象的时候初始化对象属性(没有类属性早),当当前对象变成匿名对象时,jvm会回收该垃圾对象,对象属性随之消失。xml
类属性的生命周期:
当.class文件被载入内存时类属性就初始化了,jvm关闭类属性就消失了对象
public static 返回值(void) 方法名(数据类型1 变量1,数据类型2 变量2,….){ 方法体 [return 结果] }
static修饰在方法上就是类方法继承
第一种方式:类名.类方法()推荐使用
第二种方式:对象实例.类方法()接口
访问对象属性:
类方法是不管是经过类访问仍是经过对象访问都不能直接访问对象属性的生命周期
final修饰的方法不能被复写内存
称最终变量,不能被改动赋值
语法 final class 类名{ 属性 方法 }
使用final来修饰的类是不能够被继承的。
当多个具体的实体类存在着共同的行为,可是有不一样的表现,咱们在父类继承过程当中父类的方法具体实现不一样肯定,可是能肯定的是他们都有这种行为。
咱们要把这种行为方法做为抽象方法
public abtract [返回值][void] 方法名 (参数列表); 没有方法体
若是在一个类中存在一个抽象方法,那么这个类必定是抽象类。这个类上也要有abstract标识
abstract class 类名{ 属性 方法 }
抽象类中能够没有抽象方法,可是有抽象方法的类必定是抽象类
接口的全部方法(能够添加static、final)都是抽象的,抽象类里面的方法能够是抽象的也能够是不抽象的
接口和抽象类都不能实例化
抽象类只能单继承,接口能够多继承与多实现
接口中的属性是static final类型的,抽象类中的属性跟普通类中的属性没有区别
接口中的方法默认就是抽象的不须要加absract,抽象类中的抽象方法须要加abstract关键字
多态就是行为具备表现多种功能的能力
咱们一般使用抽象类来抽象要使用多态的方法
特色:
1.必需要有继承关系,在抽象类中能够定义多态的抽象方法,经过子类来继承这个抽象类而后复写抽象类中的抽象方法以达到多态的效果。
2.多态子类的实例能够赋给父类的引用
3.咱们能够经过instanceof来判断当前父类的引用的实例是什么类型
接口的多态基本上和类的继承的多态一致
不一样的是类的继承使用的是继承关系实现多态,接口采用实现的方式实现多态。