子类引用父类的问题?????????
A.java//定义一个A类
package com.java;
public class A
{
  public Connection getConnection()
  {
    .....return //定义了数据库连接的一个方法并把回该连接
  }
}
B.java//定义一个B类
package com.java;
public class B extends A //继承A类
{
  public void getmethod1()
  {...定义方法1}
  public getResultSet(StringSQLstr)
  {
    Connection con=super.getConnection();
    Statement stm=con.creatStatement();
    ...
  }
}
C.java类的定义
public class C extends B  //
{
  public static void main()
  {
    ...
    ...
    con.close();//我要在此段中引用con但是我这样引用发生了错误,请问怎样解决?
  }
}
A类是一个数据库连接的类,B类定义了一些常用的方法(查询、更新) 我想在C类是操作B类关闭掉数据库的连接,请高手帮忙看看,????

解决方案 »

  1.   

    main 函数是 static 静态的,对于C类从B类继承下来的东西不能用吧。
    你可以在C类里写一个非静态方法,再在main里始例化一个C,再使用方法。
      

  2.   

    因为你在是在Main()方法里调用啊,直接调用字段的话只能是调用静态的,因为main()是静态的~~~
      

  3.   

    你可以在class B中定义一个protected Connection字段,在构造函数里调用getConnection()来初始化.
      

  4.   

    B.java//定义一个B类
    package com.java;
    public class B extends A //继承A类
    {
      public void getmethod1()
      {...定义方法1}
      public getResultSet(StringSQLstr)
      {
        Connection con=super.getConnection();
        Statement stm=con.creatStatement();
        ...
      }
    }
    把它改成这样,应该就可以了:package com.java;
    public class B extends A //继承A类
    {  Connection con;//此为类变量,类变量在子类中可以继承  public void getmethod1()
      {...定义方法1}
      public getResultSet(StringSQLstr)
      {
        con=super.getConnection();
        Statement stm=con.creatStatement();
        ...
      }
    }
      

  5.   

    你应该把 所有的数据库操作写到你一个类里面 
    上面的继承关系有问题 不符合逻辑
    如果非要这样使用 con 的话 可以把 con 设为 protected 类成员变量
    c 就可以用了 
    不过 强烈建议 修改继承关系
      

  6.   

    con.close();是不是B类的方法,如果是B类已经定义的方法为什么还要用C类继承B类呢?如果con.close();是C类中添加的方法,最好不要写在static void main里面.重新些一个方法加进去.最后A,B,C都是类吧,如果是抽象类,里面的静态方法就可以直接调用方法,如果不是,就要先生成对象,然后再使用响应的方法.还有,如果要使用A类,B类要先import com.java.*C类也一样.
      

  7.   

    public class C extends B  
    C最后还是一个类,不能调用方法.
      

  8.   

    我建议不要这样使用继承。
    要用的话也应该写在B类实例域:Connection con= null;或是B类域即Static型;
      

  9.   

    voicy() 用protected关键子有什么作用?