A. 有源代码的话,最简单,加完再把原来的冲掉就行了.
B. 没有源代码的话,
1. 反编译后同A,
2. 反编译后去掉final,再
class MyFinal extends ThatFinalClass {
...
}
3. 此方法不一定行.
class MyFinal{
ThatFinalClass obj = ...
public void yourMethodA() {
...
}
public void oldMethod() {
obj.oldMethod();
}
}
B. 没有源代码的话,
1. 反编译后同A,
2. 反编译后去掉final,再
class MyFinal extends ThatFinalClass {
...
}
3. 此方法不一定行.
class MyFinal{
ThatFinalClass obj = ...
public void yourMethodA() {
...
}
public void oldMethod() {
obj.oldMethod();
}
}
就是说,新写一个类代替原来的类,作为原来类的代理或者扩展