我有一个如下的父类DAO,请问我该如何将extends改为implements,因为我看到一个文章上讲Jams Gosling说过他希望去掉java的extends,下面的代码是简单的表述,希望各位高人指点一下。
分数我一定会追加很多的,现在分数少是因为我怕没有满意答案后,问题关闭付出的分数无法收回,我已经因为这个损失了很多分了,希望各位高人谅解
//BaseDAO.java
/** 父类DAO **/
public abstract class BaseDAO<T>{
/** 数据库连接类 **/
private Connection conn;
/** 结果集 **/
private ResultSet rs = null;
/** 连接数据库 **/
private boolean onConnection(){
//code....
return false;
}
/** 关闭所有资源 **/
private boolean close(){
//code....
return false;
}
/** 根据select sql得到T **/
public T get(String sql){
T o = null;
try {
onConnection();
rs=SqlExecutor.execute(conn, sql);
while(rs.next()){
o=getByBaseResultSet(rs);
}
} catch (Exception e) {}
close();
return o;
}
/** 根据select sql得到List<T> **/
public List<T> getList(String sql){
ArrayList<T> objectList=new ArrayList<T>();
try {
onConnection();
rs=SqlExecutor.execute(conn, sql);
while(rs.next()){
objectList.add(getByBaseResultSet(rs));
}
} catch (Exception e) {}
close();
return objectList;
}
/** 从结果集中取出数据填入实体对象中 **/
protected abstract T getByBaseResultSet(ResultSet rs);
}
//UserDAO.java
/** 子类dao userDAO **/
public class UserDAO extends BaseDAO<User>{
@Override
protected User getByBaseResultSet(ResultSet rs) {
User user = new User();
user.id=rs.getInt("id");
user.name=rs.getString("name");
return user;
}
/** 根据用户id得到用户对象 **/
public User getById(int id){
return get("select id,name from user where id="+id);
}
/** 根据分类id得到用户对象集合 **/
public List<User> getByClassId(int classId){
return getList("select id,name from user where class_id="+classId);
}
}
//User.java
/** 用户实体类 **/
public class User{
int id;
String name;
}
to 俺啥都知道
我知道接口怎么用,我想问的是我这个设计该如何用接口,而不是接口怎么用
to runjia1987
可是我看他们的意思就是extends完全可以抛弃,implements可以实现出比extends更好的设计,我现在就是想知道我该如何用implements实现我之前的设计
to 大家
唉,没有我想要的答案,不过还是谢谢各位了
我该如何将extends改为implements,求改
使用接口编程,可以加锁,以防止操作人员多数据修改产生的脏读等问题 我可能说的不是特别准确,但大体的理解是这样的 另外针对你的代码 如果将继承改为实现可以 \/\/BaseDAO.java \/** 父类DAO **\/ public interface BaseDAO<T>{ public Connection (){};public ResultSet (){};public boolean onC...
java中extends和implements的区别,怎么用?
当你使用"extends"时,子类可以直接使用父类的方法和属性,就像子类拥有它们一样。例如,"super()"关键字就是用来调用父类的方法,这让子类能够在不失原有功能的基础上进行扩展或定制。这种关系更像是一种"从属",子类继承并可能修改父类的特性。相反,"implements"则涉及到接口的实现。接口是一种规范...
class中 extends与implements的区别
1、在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法;implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2、extends是继承父类,只要那个类不是...
Extends与implements的区别
通过调用父类的初始化方法this.parent(),子类可以在继承的基础上进行个性化的定制。这种设计模式特别适用于项目架构中,架构师定义接口后,开发工程师可以根据需要实现这些接口,同时保持代码的可扩展性。在实际项目中,选择"implements"还是"extends",主要取决于项目的具体需求。如果项目更注重接口的实现和规...
Javaimplement(javaimplements怎么创建)
extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承 JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但睁稿让implements可以实现多个接口,用逗号分开就行了比如:classAextendsBimplementsC,D,E 接口实现的注意点:a.实现一个...
extends 与 implements 有什么区别
一个是继承,一个是实现接口,继承这个可以理解为继承父类的方法,父类中的方法可以在子类中用到,super(),实现接口就是在接口中定义了方法,这个方法要你自己去实现,接口可以看作一个标准,比如定义了一个动物的接口,它里面有吃(eat())这个方法 可以实现这个方法implements,这个方法是自己写,...
extends和implements那个不是java语言的标识符,请解释下原因,我怎么...
1. 在类的声明中, 通过关键字 extends 来创建一个类的子类。 一个类通过关键字 implements 声明自己使用一个或者多个接口。 extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2.extends 是继承父类,...
implements与Extends的区别
在实际项目中,选择"extends"还是"implements"取决于项目的具体需求。如果你需要一个类遵循某个固定的接口,且不希望其内容被修改或扩展,那么"implements"是合适的选择。相反,如果你希望建立一个可以被修改和扩展的结构,或者需要子类继承和扩展父类的功能,那么"extends"将更为适用。
extends与implements有什么区别
extends:用于继承一个类。在Java中,一个类可以通过继承另一个类来复用代码并获取其属性和方法。子类继承父类的特性,并且可以增加新的功能或重写父类的方法。继承是面向对象编程中的一个基本特性。implements:用于实现一个或多个接口。接口定义了一组方法的契约或协议。一个类通过实现接口,承诺它会...
java中同时使用implements 和extends关键字,为什么必须先写extends后...
给你举个形象的例子你就明白了..A implements C 就像是一个小孩A认了个干爹C A extends B 就像是B是A的亲爹 所以说同时使用implements 和extends关键字的时候,必须先写extends后写implements,毕竟亲爹比干爹亲嘛...