我的一位朋友在他几天的电话工作面试中被问到了这个问题。 我没有线索。有谁能建议解决方案? (他的求职面试结束了。出于好奇现在) 10倍。
答案 0 :(得分:10)
答案 1 :(得分:0)
我不知道最终类的含义是什么意思。如果它们意味着一个不能通过继承扩展的类,那么除非用 final (或者密封,或者语言关键字是什么)标记该类,否则显然不能这样做。
但是如果意思是 final ,就像在immutable中那样派生类不能修改类中字段的值,那么基类应该具有所有的filed和accessor方法私有的。
答案 2 :(得分:0)
创建一个没有参数的私有构造函数?
public class Base
{
private Base()
{
}
}
public class Derived : Base
{
//Cannot access private constructor here error
}
答案 3 :(得分:0)
将该类的所有构造函数设置为private以停止继承,但不建议使用。
答案 4 :(得分:0)
public class Immutable {
private int val;
public Immutable(int v)
{
this.val = v;
}
public int getVal() { return this.val; }
}
答案 5 :(得分:0)
您可以使类不可变,而无需将final关键字用作:
我在这里用Java提供了不可变的类。
class Immutable {
private int i;
private Immutable(int i){
this.i = i;
}
public static Immutable createInstance(int i){
return new Immutable(i);
}
public int getI(){return i;}
}
class Main {
public static void main(string args[]){
Immutable obj = Immutable.createInstance(5);
}
}
答案 6 :(得分:-1)
无法从
继承静态类