假设我有库 X,其中包含带有方法 b的类 A ,并且库 X 是在GPL 许可下发布的。
public class A {
public void b() {
// this is an example of b method's body. But assume that the body of method b
// is very complex
System.out.println("operation a");
System.out.println("operation b");
System.out.prinltn("operation c");
}
}
假设我正在使用库 X,并且我需要一种与方法 b 的行为类似的行为,但有一个附加项,我无法通过简单地扩展类 A 并覆盖他们的一些方法来实现。
第一个问题是:我可以按照下面所示的方式扩展类 A 并覆盖方法 b,GPL 许可证是否仍然允许这样做。
public class AExt extends A {
public void b() {
// this is an example of b method's body. But assume that the body of method b
// is very complex
System.out.println("operation a");
System.out.println("operation b");
doOperationINeed();
System.out.prinltn("operation c");
}
}
第二个问题是:常用的开源许可证中哪些允许此类扩展,哪些不允许?