标题: 【上海校区】java面试_面向对象 [打印本页] 作者: 不二晨 时间: 2018-12-31 09:54 标题: 【上海校区】java面试_面向对象 1.this
This使用的几个场景
1.指向对象成员变量
2.指向本类的方法或构造方法
3.static方法在本类中直接通过方法名调用,不用加this
4.static方法里不能使用this
结论:this指向的是对象不是类
2.继承实例化的过程
1.当存在继承时加载的顺序
代码:
public class TestExtend {
public static void main(String[] args) {
B b = new B();
System.out.println("");
B b2 = new B();
}
}
class A {
static {
System.out.println("a static");
}
{
System.out.println("a {}");
}
public A() {
System.out.println("a 构造");
}
}
class B extends A{
static{
System.out.println("b static");
}
{
System.out.println("b {}");
}
public B(){
System.out.println("b 构造");
}
}
执行结果:
a static
b static
a {}
a 构造
b {}
b 构造
a {}
a 构造
b {}
b 构造
结论:
1.继承时加载顺序:先加载父类静态成员,再加载子类静态成员
加载父类成员变量,再加载父类构造方法
加载子类成员变量,再按加载子类构造方法
2.static变量属于类不属于对象,所以只有类装载进内存时才会调用,而不是实例化对象时
3.几个方法
Equals 基本数据类型的封装类重写
Hashcode 获得hash码,int类型就是本身,其他方法java中都有写可以看源码,eclipse上有快捷生成的方法,对象类型是各个变量相乘
4.方法的重载和重写
重载:发生在同一个类下
条件:参数类型不同,方法名相同,别的没要求,就像构造方法的参数一样
重写:发生在继承情况下
条件:重写是多态的实现,所以方法名,参数,返回值类型必须和父类方法相同,但是返回值类型因为强制类型转换,所以可以小于父类方法的返回值类型。
异常必须小于等于父类方法,访问权限必须大于等于父类方法