如果父类 有一个私有方法 子类有没有继承下来呢
我在父类中写了一个protected 方法 打印T1 在子类重写这个方法 打印T2
在main方法了 将子类向上转型给父类对象 并用父类对象调用这个方法 打印的是T2
为什么是这样 不是就近原则嘛 另问 刚刚学了 jsp 和javabean 适合做什么项目 我要原理 谢谢
我在父类中写了一个protected 方法 打印T1 在子类重写这个方法 打印T2
在main方法了 将子类向上转型给父类对象 并用父类对象调用这个方法 打印的是T2
为什么是这样 不是就近原则嘛 另问 刚刚学了 jsp 和javabean 适合做什么项目 我要原理 谢谢
楼主【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 %
敬礼!
答: 父类的私有属性和方法子类是没有办法继承的。 我在父类中写了一个protected 方法 打印T1 在子类重写这个方法 打印T2
在main方法了 将子类向上转型给父类对象 并用父类对象调用这个方法 打印的是T2
答:这个问题就是多态,子类重定义了父类的方法,那么如果使用子类创建对象,并使用父类对象进行调用就会调用子类的方法。
就近原则的概念第一次听说,不知道你是什么地方看的.
后面那种现象就是多态,面向对象的关键特性之一.
父类的引用指向子类的对象,运行的时候系统可以确定对象的类型是子类,所以首先从子类中找你要调用的方法,没有了再到父类找.所以如果调用子类覆盖的方法的话,执行的就是子类的方法,如果子类没有覆盖,就去父类找.
public : 所有类都可以访问
protected : 子类可以访问
private : 只有自己可以访问所以, 私有方法子类不会继承和访问.2.
java里没有什么就近原则.是哪个类的对象,就调用哪个类的方法,所以打出来的是T2(如果你可以debug就知道这个对象是哪个类的了,debug里明确的可以看到它是子类的对象)
转型,只能说明它是某一类型的.3.jsp可以做网页.懂了javabean,搞界面也不错.慢慢来
public protected private是访问权限而不是继承权限吧.
所以不能光在子类看到不能用就认为没有继承到吧?另外,如果是想子类能继承一个方法,而又不想在非本类系中的类暴露此方法,可以用protected关键字.
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的来历就很奇怪了.