最赞回答 / wangyt
不管是this.getClass()还是super.getClass(),最终都指向了Object对象的getClass(),这个方法是final的不能被子类重写。根据API定义,getClass()返回对象在运行时的类型,运行时的类型是B,所以返回类型也是B。
2015-07-07
final不可修改,不可变化,可以修饰类,方法属性和变量
类:不允许被继承
方法:不允许被覆盖(重写)
属性:不会进行隐式的初始化。是没有默认赋值为0的。
变量:只能声明时赋值,不能改变,也就是常量
类:不允许被继承
方法:不允许被覆盖(重写)
属性:不会进行隐式的初始化。是没有默认赋值为0的。
变量:只能声明时赋值,不能改变,也就是常量
2015-07-07
最赞回答 / 武当王也
关系说不上,你只需要明白为什么要用这两个关键字就好了,final关键字,顾名知意,到终点了,修饰变量,不能变了,所以变量就不能再被赋值,修饰类,类不能生儿子了,所以该类不能被继承,修饰方法,方法不能被继承或者覆盖了,而static是为了说明,可以修饰方法,类,以及块,说明这些是属于类的,而不是属于类的某个对象。
2015-07-05
父类:
public class Traffic {
int people;
String place;
public void run()
{
System.out.println(people+"个人"+"在"+place);
}
}
子类:
public class Car extends Traffic {
}
public class ferry extends Traffic {
}
public class Aircraft extends Traffic {
}
测试类:创建对象 指定子类
对属性复制 调用父类的方法
public class Traffic {
int people;
String place;
public void run()
{
System.out.println(people+"个人"+"在"+place);
}
}
子类:
public class Car extends Traffic {
}
public class ferry extends Traffic {
}
public class Aircraft extends Traffic {
}
测试类:创建对象 指定子类
对属性复制 调用父类的方法
2015-07-05