[求解]为什么要设计final类和方法?
我们知道final方法不能被覆盖, final类不能被继承, 因而类中所有的方法都不能被覆盖. 总而言之, 设计final类和方法就是防止方法被子类覆盖. 但实际应用中, 使用final类有什么好处呢? 我一直没搞清楚. 一般说到final类都是会提到java.lang包中的一些基本类, 比如String. 那么假设String类不是final的, 里面的方法也可以被覆盖, 那么我们可以编译并运行下面的代码:
public class MyString extends String {
public int length() {
return 0; //错误地覆盖了length()方法
}
}
假设上面的代码可以编译, 那么错误的length()方法也只存在于MyString中啊, 对父类String没有任何影响, 其他程序员还是一样可以正常使用String类啊, 这样用到底有什么害处呢? 不解.....