读书人

java沿袭的实际操作

发布时间: 2011-12-12 22:59:56 作者: rapoo

java继承的实际操作?
我想问一下抽象出来的父类该怎么写

===============================

package News.DAO;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import News.DTO.NewsAdminDTO;
import News.util.MySqlConnection;
import News.util.SQLServerConnection;

public class NewsAdminDAO
{
//要被放入基类的字段
private Connection conn=null;
private Statement stmt = null;
private ResultSet rs = null;
private MySqlConnection mc= null;
private String runinfo= " ";
private String dbFlag= " ";

//要被放入基类的方法
public void useMySQL()
{
dbFlag= "MySQL ";
mc=new MySqlConnection();
conn=mc.openConnection();
}
public void useSQLServer()
{
dbFlag= "SQLServer ";
conn=SQLServerConnection.getConn();
}
public void closeConnection()
{
try
{
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
}catch(Exception e)
{e.printStackTrace();}
finally
{
if(mc!=null)
{
mc.closeConnection();
System.out.println( "close MySQL Connection in NewsAdminDAO_ "+runinfo);
}
else
{
SQLServerConnection.dbclose(conn);
System.out.println( "close SQLServer Connection in NewsAdminDAO_ "+runinfo);
}
}
}

//该类特有方法
public boolean checkAdmin(String yhm)
{
String sql= "............................... ";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}

public boolean isAdmin(String yhm,String yhmm)
{
//省略
}
public int addAdmin(NewsAdminDTO dto)
{
//省略
}
}


我想把 "要被放入父类的方法和字段 "提取出来
public class DAObase()
{
//字段
//方法
}

然后,子类继承

public class NewsAdminDAO extends DAObase
{
//这里对父类的属性 conn,stmt,rs 等怎么使用呢???
直接使用,但是子类里没有声明,也不想在子类里声明,要是这样就没有抽象的必要了

//子类用实例化它的父类么??

//每个子类对象使用的父类也都是一个对象副本吧?
}

=========== 想实现的效果 ====================

public class NewsAdminDAO extends DAObase
{

public boolean checkAdmin(String yhm)
{
String sql= "............................... ";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
public boolean isAdmin(String yhm,String yhmm)
{
//省略
}
public int addAdmin(NewsAdminDTO dto)
{
//省略
}
}

大体这样的结构.

[解决办法]
直接另写一个基类
然后把你要分离的方法和属性放入基类
然后子类继承就可以了啊

至于你说的子类怎么使用基类的属性
直接用子类的对象调用就可以了


[解决办法]
子类继承基类的时候,基类所有的属性子类都继承过来了


只是对于私有成员子类无法访问;
也就是说子类里面有一个基类的副本。

在构造子类的时候,子类的构造方法会调用基类的构造方法,但这并不是实例化基类,只是通过基类的构造方法来初始化基类的成员变量
[解决办法]
顶一下楼上,说的好

读书人网 >J2SE开发

热点推荐