如果父类 有一个私有方法 子类有没有继承下来呢
  
  我在父类中写了一个protected 方法 打印T1 在子类重写这个方法 打印T2
  
  在main方法了 将子类向上转型给父类对象 并用父类对象调用这个方法 打印的是T2 
  为什么是这样 不是就近原则嘛   另问 刚刚学了 jsp 和javabean 适合做什么项目   我要原理 谢谢

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【venus861003】截止到2008-07-24 09:30:54的历史汇总数据(不包括此帖):
    发帖的总数量:18                       发帖的总分数:180                      每贴平均分数:10                       
    回帖的总数量:8                        得分贴总数量:1                        回帖的得分率:12%                      
    结贴的总数量:18                       结贴的总分数:180                      
    无满意结贴数:8                        无满意结贴分:40                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:44.44 %               无满意结分率:22.22 %                  
    敬礼!
      

  2.   

     如果父类 有一个私有方法 子类有没有继承下来呢 
    答: 父类的私有属性和方法子类是没有办法继承的。 我在父类中写了一个protected 方法 打印T1 在子类重写这个方法 打印T2 
      
      在main方法了 将子类向上转型给父类对象 并用父类对象调用这个方法 打印的是T2 
    答:这个问题就是多态,子类重定义了父类的方法,那么如果使用子类创建对象,并使用父类对象进行调用就会调用子类的方法。
      

  3.   

    父类的子类方法子类是看不到的,所以不用考虑其他的了.如果打算让子类重写的话父类中就不要把方法声明为private或者final的.
    就近原则的概念第一次听说,不知道你是什么地方看的.
    后面那种现象就是多态,面向对象的关键特性之一.
    父类的引用指向子类的对象,运行的时候系统可以确定对象的类型是子类,所以首先从子类中找你要调用的方法,没有了再到父类找.所以如果调用子类覆盖的方法的话,执行的就是子类的方法,如果子类没有覆盖,就去父类找.
      

  4.   

    1.
    public : 所有类都可以访问
    protected : 子类可以访问
    private : 只有自己可以访问所以, 私有方法子类不会继承和访问.2.
    java里没有什么就近原则.是哪个类的对象,就调用哪个类的方法,所以打出来的是T2(如果你可以debug就知道这个对象是哪个类的了,debug里明确的可以看到它是子类的对象)
    转型,只能说明它是某一类型的.3.jsp可以做网页.懂了javabean,搞界面也不错.慢慢来
      

  5.   

    子类应该是继承了private方法的,但不能访问而已.
    public protected private是访问权限而不是继承权限吧.
    所以不能光在子类看到不能用就认为没有继承到吧?另外,如果是想子类能继承一个方法,而又不想在非本类系中的类暴露此方法,可以用protected关键字.
      

  6.   

    这个说法是错误的,子类将继承父类的一切属性和方法,不过如果父类中的方法如果是private的,子类只是不能访问而已.简单的例子:class Test {
        public static void main(String[] args) {
            Sub s=new Sub();
            System.out.println(s.getI());
        }
    }
    class Super{
        private int i=8;
        public int getI(){
            return i;
        }
    }
    class Sub extends Super{
        
    }如果不能继承private int i;的话getI()中的i的来历就很奇怪了.