一、final(最终)可以修饰类、方法、变量
特点:final修饰类,该类不能被继承
final修饰方法,该方法不能被重写(覆盖、重载、复写)
final修饰变量,该变量不能被重新赋值。因这个变量成为了常量。但可以被子类访问;
推出:常量分为:字面值常量("hello",10,true)和自定义常量(final int x=10)
final修饰局部变量时,基本类型的值不能改变
引用类型的地址不能发生改变,但是,该对象的堆内存的值是可以变的
二、多态中成员访问特点
1、成员变量:编译看左边,运行看左边
2、构造方法:创建子类对象的时候,访问父类的构造方法,对父类进行初始化
3、成员方法:编译看左边,运行看右边
4、静态方法:编译看左边,运行看左边(静态方法和类相关,算不上重写,所以访问还是左边)
三,图解父子类属性方法调用
四、接口成员特点
成员变量:只能是常量,并且是静态的。默认修饰符:public static final,建议手动写出
构造方法:接口没有构造方法
成员方法:只能是抽象方法,默认修饰符:public abstract,建议手动给出(接口方法不能有主体,静态方法是类方法,故接口方法不能是静态的)
所有的类都默认继承自Object,类Object是类层次结构的根类,每个类都是用Object作为超类
五、抽象类和接口区别
1、成员区别:
抽象类:
成员变量:可以是变量,也可以是常量
构造方法:有
成员方法:可以是抽象,也可以是费抽象
接口:
成员变量:只可以是常量
成员方法:只可以是抽象
2、关系区别:
类与类:继承,单继承
类与接口:实现,单实现,多实现
接口与接口:继承,单继承,多继承
3、设计理念区别:
抽象类:被继承体现的是“is a”的关系;抽象类中定义的是该继承体系的共性功能
接口:被实现体现的是“like a”的关系;接口中定义的是该继承体系的扩展功能