抽象类中怎么调用接口里面的方法
有段代码是这样写的publicabstractclassBaseService<T>{publicabstractBaseDao<T>getDao();/***通过一个实...
有段代码是这样写的
public abstract class BaseService<T> {
public abstract BaseDao<T> getDao();
/**
* 通过一个实例对象去新增一条数据
* @param t
* @throws Exception
*/
public void add(T t) throws Exception {
getDao().add(t);
}
}
public interface BaseDao<T> {
public void add(T t);
}
有两点不懂:①getDao是个抽象方法,它怎么还能调用add()?②调用getDao().add(t),那么这个add方法是由谁去实现呢? 展开
public abstract class BaseService<T> {
public abstract BaseDao<T> getDao();
/**
* 通过一个实例对象去新增一条数据
* @param t
* @throws Exception
*/
public void add(T t) throws Exception {
getDao().add(t);
}
}
public interface BaseDao<T> {
public void add(T t);
}
有两点不懂:①getDao是个抽象方法,它怎么还能调用add()?②调用getDao().add(t),那么这个add方法是由谁去实现呢? 展开
2015-04-07 · 知道合伙人互联网行家
关注
展开全部
抽象类不能被实例化,想调用里面的普通方法要通过继承,然后实例化子类调用抽象类的普通方法,下面有一段示例代码供你参考
定义一个抽象类 A
public abstract class A {
abstract int getSum(int a,int b);//抽象方法
int getSum2(int b)
{
int b;
return b;
};//普通方法
}
定义B类继承A类
public class B extends A {
int getSum(int a,int b) { //必须实现父类中的抽象方法的具体细节
int sum=a+b;
return sum;
}
public static void main(String a[]){ //主方法
System.out.println(new B().getSum2(90));//调用普通方法
System.out.println(new B().getSum(2,6));//调用抽象方法也相同
}
}
代码你不要复制,因为标点有中文状态下的可能会报错
希望能解决你的疑问,不过抽象类还有一个特例“接口”,接口要通过implements 关键字实现
定义一个抽象类 A
public abstract class A {
abstract int getSum(int a,int b);//抽象方法
int getSum2(int b)
{
int b;
return b;
};//普通方法
}
定义B类继承A类
public class B extends A {
int getSum(int a,int b) { //必须实现父类中的抽象方法的具体细节
int sum=a+b;
return sum;
}
public static void main(String a[]){ //主方法
System.out.println(new B().getSum2(90));//调用普通方法
System.out.println(new B().getSum(2,6));//调用抽象方法也相同
}
}
代码你不要复制,因为标点有中文状态下的可能会报错
希望能解决你的疑问,不过抽象类还有一个特例“接口”,接口要通过implements 关键字实现
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询