1、计算机中的“透明性”?
一种本来存在的事物或属性。从某个角度看似不存在。
2、为什么类不能用protected修饰?
若用protected修饰的,该类的访问权限是被同一个包或者子类访问,无法被其他类访问。连被其他类都访问不了,那还怎么继承?如果能被同一个包访问,那根default有什么区别?
3、多态的定义?
相同类型的变量,调用同一个方法时,呈现出不同的行为特征,这就是多态。eg: Animal a=new Animal();
a.eat(); //动物会吃
Animal b=new Dog();
b.eat() //我吃骨头
a和b是同一个类型的变量都为Animal,可是调用同一个方法时,会有不同的行为,所以叫做“多态”。
4、重载和覆盖(重写)区别?
重载指的是:同一个类中,方法名相同,参数列表不同。然后调用该同名方法时,根据传进去的参数,从而自动选择调用哪一个方法。
覆盖(重写):是发生在子类当中,子类方法与父类方法返回值相同,参数列表相同,就是对父类方法的覆盖(父类方法是private的不算覆盖,算子类自己重新写过一个方法)
5、面向对象的三大特征?
封装、继承、多态。
6、方法参数传递机制:
为值传递的机制,传进去的只是一个参数的副本,并不是该参数。如果该参数为引用类型的参数,那么传进去的将是该地址的副本。所以,在方法内部对引用类型的操作会直接修改对象,对原来的值有影响;对基本类型的操作对原来的值毫影响。
7、static修饰的变量为什么不能访问实例变量?
从他们的生命周期来看,类变量依赖于类,普通成员变量依赖于实例,该类存在的时候可能还没创建该实例,如果此时访问就会出错。