- static 修饰的属性,相较于实例变量,有哪些特别之处(>=3点)
被类的所有对象共享。
随着类的加载而加载。
用static修饰的成员可以通过类名加“.”进行直接访问,也可以通过对象来访问。
存在于方法区的静态域。
- final 可以用来修饰哪些结构,分别表示什么意思?
* final修饰方法,变量,类
* fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)
* final修饰方法:该方法不能被重写
* inal修饰变量:表明该变量是一个常量,不能再次赋值
* final 修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
- 类的属性赋值的位置有哪些?先后顺序为何?
① 默认初始化
② 显式初始化(即在定义中就已对变量赋值)
③ 构造器中初始化
④ 通过“对象.属性“或“对象.方法”的方式赋值
- abstract 能修饰哪些结构? 修饰以后,有什么特点?
能修饰类、方法
特点:修饰类后不能实例化 ,需要我们提供一个子类进行继承。
抽象方法,只定义了一种功能的标准。具体的执行,需要子类去实现。
- 接口是否能继承接口? 抽象类是否能实现(implements)接口? 抽象类是否能继承非抽象的类?
接口是能继承接口(可以单继承,也可以多继承)
抽象类可以实现(implements)接口
抽象类可以继承具体类。
- 抽象类和接口有哪些共同点和区别?
共同点:都可以包含抽象方法;不能实例化,都可以被继承
区别:抽象类:有构造方法,抽象类通过子类对象实例化。只能单继承。
接口:不能声明构造方法;接口通过实现类对象实例化;接口可继承接口,并可多继承接口。