java中statement和preparedstatement都是接口,为什么能建立对象?

2022-03-16 社会 118阅读

jdbc这一套规范被数据库厂商实现了,厂商中实现了这些接口 

例如:createStatement() 他在Connection这个接口中,他已经被数据库厂商实现并且重写了 实际上就是多态中的接口指向实现类而sta实际上是实现类对象。 

下面举个列子:我们定义一个接口和实现类及测试类

public interface Test {
void close();
Test createTest();//返回Test
}//实现类
public class sxl implements Test {

@Override
public void close() {
System.out.println("我是一只小老虎");
}

@Override
public Test createTest() {
return new sxl();
}

}

这个类实现了Test接口并且重写了里面的方法可以看见createTest()这个实现返回的是

Test的实现类 

// 测试类
public class Mytest {
public static void main(String[] args) {
sxl s = new sxl();
Test t = s.createTest();
System.out.println( t );
}
}

Main方法中产生了实现类对象并且调用的createTest()他的接收者是Test接口

这就是多态中接口指向实现类 打印t的结果为: test.sxl@dc8569 (test这个test是sxl这个类的包) 可以看出是实现类的引用。希望对你有所帮助!!!

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com