提问:
1.什么是访问限定符?
2.java中常用的关键字有哪些?
3.简述final以及static关键字?
4.面向对象的三大特征?
5.简述抽象类和接口
解答1:访问限定符是用来修饰类、属性(成员变量、类变量)、方法
延伸:
变量:
1.类变量:在整个类中[该类的所有对象都能使用]
2.成员变量:在整个对象中
3.参数变量:在整个方法中
4.局部变量:从定义开始到其所在的代码块结束
注意:参数变量和局部变量不能被访问限定符修饰
解答2:java中的常用关键字有:public private 默认不写 protected
关键字的适用范围
同类 | 同包 | 不同包的子类 | 同一个程序 | |
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
默认不写 | √ | √ | ||
private | √ |
解答3:
final是用来修饰 类 变量 方法
final修饰的类不可以被继承(你可以理解为太监类,但是当面试时你得讲的专业化一点)
final修饰方法时,表示这个方法不可以被修改(写法:public final void 方法名(){})
final修饰变量时,表示这个变量必须要赋值,且只能赋值一次
参数变量同样可以被final修饰,但是参数变量不能被访问限定符修饰
static是用来修饰类 属性 方法
static的属性 和方法是不需要通过对象来调用的
static [l类属性]:该类的所有对象共享一个属性,占用一块内存空间,可以通过对象类名直接调用
类方法中不能通过this super表示对象,static修饰的方法叫做静态方法,不能直接访问本类的非静态成员,
但是非静态成员可以访问本类的静态成员
类方法调用的是父类还是子类只与类名有关
成员属性:成员属性的对象都单独占用一块内存空间
成员方法:调用父类还是子类的重写至于对象的方法名有关
static修饰初始代码块:这时这个初始代码块就叫做静态代码块,这个代码块只在类被加载时被执行了一次
解答4:面向对象的三大特征是:继承 封装 多态
封装:面向对象的主要特征,将对象的属性和方法结合成一个独立的整体,并尽可能的隐藏其实现细节
继承:在定义和实现一个类时,可以在已经存在的类的基础上执行,可以加入新的内容,或者修改原来
的方法。提高了软件的可重用性和扩展性。
多态:同一个类型的对象执行同一个行为,得到的结果可能不一样
重写多态[动态多态]:由于继承和重写机制导致的多态
重载多态[静态多态]:由于重载机制导致的多态
解答5:
抽象类:
public abstract class 类名{}
抽象类当中可以是抽象方法也可以是具体的成员方法(抽象类当中不能用static)
抽象类当中的方法可以是类属性也可以是成员属性
抽象类有构造方法,默认的是无参构造方法,但是不能用来创建对象
继承抽象类的时候,必须重写抽象类中的所有抽象方法
一个类只能继承一个抽象类
public class A{
public class B extends A{
接口(接口不是类):
public interface 类名 {}
接口是用来充当父类给子类去继承和发展的
接口中的方法必须全部是抽象方法
接口中的方法默认是public,必须是public
接口中的属性必须是公共的常量
接口中没有构造方法,不能创建对象
接口是用来充当父类给子类去扩展的一个类可以实现多个接口
public interface A{ }
public interface B{ }
public class C implements A,B {}
一个类可以先继承一个抽象类,在实现多个接口
public class A{}
public interface B{}
public interface C{}
public class D extends A implements B,C{}