面试题答案
一键面试// 定义特定接口
interface SpecificInterface {
void specificMethod();
}
// 定义泛型类,使用接口进行泛型约束
class GenericClass<T extends SpecificInterface> {
private T instance;
public GenericClass(T instance) {
this.instance = instance;
}
public void callSpecificMethod() {
instance.specificMethod();
}
}
// 创建泛型类的子类
class SubGenericClass extends GenericClass<SubClass> {
public SubGenericClass(SubClass instance) {
super(instance);
}
}
// 实现特定接口的子类
class SubClass implements SpecificInterface {
@Override
public void specificMethod() {
System.out.println("SubClass's specific method implementation");
}
}
public class Main {
public static void main(String[] args) {
SubClass subClassInstance = new SubClass();
SubGenericClass subGenericClassInstance = new SubGenericClass(subClassInstance);
subGenericClassInstance.callSpecificMethod();
}
}
以上代码在Java语言中实现了题目要求。定义了SpecificInterface
接口,GenericClass
泛型类通过接口约束泛型类型,SubGenericClass
继承GenericClass
,SubClass
实现SpecificInterface
接口,并在main
方法中进行了实例化与调用。如果是其他语言,实现思路类似但语法会有所不同。例如在C#中代码如下:
// 定义特定接口
interface ISpecificInterface {
void SpecificMethod();
}
// 定义泛型类,使用接口进行泛型约束
class GenericClass<T> where T : ISpecificInterface {
private T instance;
public GenericClass(T instance) {
this.instance = instance;
}
public void CallSpecificMethod() {
instance.SpecificMethod();
}
}
// 创建泛型类的子类
class SubGenericClass : GenericClass<SubClass> {
public SubGenericClass(SubClass instance) : base(instance) { }
}
// 实现特定接口的子类
class SubClass : ISpecificInterface {
public void SpecificMethod() {
Console.WriteLine("SubClass's specific method implementation");
}
}
class Program {
static void Main() {
SubClass subClassInstance = new SubClass();
SubGenericClass subGenericClassInstance = new SubGenericClass(subClassInstance);
subGenericClassInstance.CallSpecificMethod();
}
}