大家都知道,面向对象三大特性:封装、继承和多态。
而实现上述特性需要依赖于类和对象。
类有成员变量和成员方法,而用static修饰符表示该字段或方法属于类本身,而非对象,随着类被加载到JVM中就分配内存;由类本身来进行访问;
static还可以修饰代码块,在字节码载入JVM之后就调用,在main函数之前执行
对象即是类的实例;如类Person
Person p = new Person() 创建一个对象,即在堆内存中开辟一个内存空间,而p仅是引用,指向栈内存的地址。
继承思想
在继承父类过程中,如果需要对父类方法进行覆盖(override),需要注意:(一同两小一大)
1)一同:方法名相同
2)两小:不能产生新的异常;要小于父类方法的返回类型
3)一大:子类方法的修饰符要大于父类
方法重载(overload):“两同一不同”,同一类中,同一方法名,参数列表不同。
final修饰符也可以修饰类、对象和变量;
不可以被继承;不可以被修改内存地址;不可以修改数值;
接口和抽象类(abstract)
相同点:都可以定义 抽象方法,让子类进行实现;被其他子类继承;都不可以被实例化;
不同点:接口可以实现多继承;接口只有抽象方法,而抽象类有抽象方法和普通方法;接口中方法没有实现,抽象类可实现;
变量:接口默认修饰符 public static final ,抽象类默认包访问权限;
方法:接口默认public abstract
内部类:接口默认public static