多个泛型继承调用

目标:

ChildDojoA.java是Dojo类,

ParentDojoA.java是B的父类

 

ChildServiceB.java是服务类service,s需要使用B中方法

ParentServiceB.java是S的父类

从而实现一个方法,调用所有实现ParentServiceB的类的方法

 

直接上代码

 

ChildServiceB.java和ParentServiceB.java

package com.wang.generics.childrens;

import com.wang.generics.parent.ParentServiceB;

public class ChildServiceB extends ParentServiceB {
	public String getName(ChildDojoA childA) {
		
		return childA.getName();
	}

}
package com.wang.generics.parent;

public class ParentServiceB {
	public String getName(T t) {//service
		
		return t.getName();
	}

}

 

ChildDojoA.java和ParentDojoA.java

package com.wang.generics.childrens;

import com.wang.generics.parent.ParentDojoA;

public class ChildDojoA extends ParentDojoA {
	public String getName() {
		
		return "ChildDojoA";
	}

}
package com.wang.generics.parent;

public class ParentDojoA {
	public String getName() {
		
		return "ParentDojoA";
	}
}

 

测试类

package com.wang.generics;

import com.wang.generics.childrens.ChildDojoA;
import com.wang.generics.childrens.ChildServiceB;
import com.wang.generics.parent.ParentDojoA;
import com.wang.generics.parent.ParentServiceB;

public class GenericsControllor> {
	private B bean;        // Dojo类
    private S iService;        // service类
    
	public static void main(String[] args) {
		//此处必须new一个实体类,B S 如果为静态属性,new  ChildA()不是静态值,再强制类型转换就会导致报错
		GenericsControllor genericsControllor= new GenericsControllor();
		genericsControllor.get();
	}

	public void get() {//实体类使用泛型,调用通用接口
		ChildDojoA childA = new  ChildDojoA();
		ChildServiceB childB = new  ChildServiceB();
		bean = (B)childA;
		iService = (S)childB;
		getName(bean,iService);//此处必须传 B和S类,使用ChildA、ChildB会报类型使用错误
	}
	public void getName(B b,S s) {//通用打印
		System.out.println(s.getName(b));
		
	}
}

 

你可能感兴趣的:(java)