package cn.com;public class Test
{
protected void proMethod()
{
System.out.println("This is proMethod");
}public static void main(String[] args)
{
Test te=new Test();
te.pubMethod();}
}
package net.com;
import cn.com.Test;
class Test1 extends Test
{
public void fm()
{
proMethod();              
}
protected void proMethod()
{
System.out.println("This is Test1 proMethod");
}
public static void main(String[] args)
{
Test1 t=new Test1();
t.pubMethod();
}
}
运行Test1.java
结果为This is proMethod
为什么不是This is Test1 proMethod
为什么fm中可以调用proMethod

解决方案 »

  1.   

    t.pubMethod();??
      

  2.   

    lz你代码编译肯定有错误呢,怎么能得出结论?
    pubMethod那来的?
      

  3.   

    靠,我看了半天,不知道pubMethod是谁家孩子.我还以为是不是Object的,该不会是版本升级添加的新方法吧?
    晕.
      

  4.   

    在方法钱加  
    @Override 试试看下面有没有什么情况
      

  5.   

    调整参数名后,编译成了,不过运行结果是:
    This is Test1 proMethod
    而不是你说的那个结果.第二个问题:fm()为什么能调用...
    本类的和本类的子类可以调用protected方法,符合Java规范.
      

  6.   

    若使用字符流,ps方法也要改:void setCharacterStream(int parameterIndex,
                            Reader reader,
                            int length)
                            throws SQLException
    将给定参数设置为给定 Reader 对象,后者是给定的字符数长度。在将一个非常大的 UNICODE 值输入到 LONGVARCHAR 参数时,通过 java.io.Reader 对象发送它可能更实际一些。将根据需要从流中读取数据,一直读取到文件末尾。JDBC 驱动程序将执行从 UNICODE 到数据库 char 格式的任何必要转换。 
    注:此流对象既可以是一个标准 Java 流对象,也可以是实现标准接口的用户自己的子类。 
    参数:
    parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推。
    reader - 包含 Unicode 数据的 java.io.Reader 对象
    length - 流中的字符数 
    抛出: 
    SQLException - 如果发生数据库访问错误