用JDBC连接数据库,关闭资源时,调用statement.isclosed()会出现AbstractMethod错误,上网搜了一下,一种说法是Statement的具体实现类没有实现isClosed()方法,但是接口的方法在实现类中不是必须得全部实现吗?迷惑。。。
顺便搜了一下Abstract类和Interface的区别与联系,如下:
抽象类是对某一类型的事物,在编程时,为了描述这类事物,而高度抽象、总结出来的一种基础类型。这么说还是很晦涩,打个比方好了,就好比说动物,动物就是一种抽象类,当我们说动物的时候,我们可以想象出很多种具体的动物类别,比如,猪、狗、老虎、狮子,这些都是继承了“动物”这个抽象类而实现了各自特有属性特征的具体子类。
抽象类有几个必要因素:
1、抽象类不能实例化。
2、抽象类可以含有抽象方法和其他带有抽象标志的访问器。(什么是抽象方法,我们接着说。)
3、抽象类是用来给其他类继承的,所以,我们不能用sealed来修饰抽象类,不然就矛盾了。
4、如果抽象类中含有抽象方法或其他带有抽象标志的访问器,在派生自这个抽象类的子类中,必须明确实现这些抽象方法和访问器。
二、接口interface的理解。
关于接口的概念,很好说,我也不在这里赘述。关键是如何理解接口。我们可以把接口看作是一种“can do something”的抽象。也打个比方,是个经典的比方,鸟和飞机是两种不同的类别,但是鸟会飞,飞机也会飞,它们都会飞“can fly”
顺便搜了一下Abstract类和Interface的区别与联系,如下:
抽象类是对某一类型的事物,在编程时,为了描述这类事物,而高度抽象、总结出来的一种基础类型。这么说还是很晦涩,打个比方好了,就好比说动物,动物就是一种抽象类,当我们说动物的时候,我们可以想象出很多种具体的动物类别,比如,猪、狗、老虎、狮子,这些都是继承了“动物”这个抽象类而实现了各自特有属性特征的具体子类。
抽象类有几个必要因素:
1、抽象类不能实例化。
2、抽象类可以含有抽象方法和其他带有抽象标志的访问器。(什么是抽象方法,我们接着说。)
3、抽象类是用来给其他类继承的,所以,我们不能用sealed来修饰抽象类,不然就矛盾了。
4、如果抽象类中含有抽象方法或其他带有抽象标志的访问器,在派生自这个抽象类的子类中,必须明确实现这些抽象方法和访问器。
二、接口interface的理解。
关于接口的概念,很好说,我也不在这里赘述。关键是如何理解接口。我们可以把接口看作是一种“can do something”的抽象。也打个比方,是个经典的比方,鸟和飞机是两种不同的类别,但是鸟会飞,飞机也会飞,它们都会飞“can fly”