在java中,一个在子类中被重写了的方法,还能通过子类实例在其它类里被访问到吗?
如题~例如classA{publicvoidprint(){System.out.println("A的方法");}}classBextendsA{publicvoidp...
如题~
例如
class A{
public void print(){
System.out.println("A的方法");
}
}
class B extends A{
public void print(){
System.out.println("B的方法");
}
}
现在我在外部某个类中创建一个B的事例,如何通过这个实例访问到A中的print方法呢? 展开
例如
class A{
public void print(){
System.out.println("A的方法");
}
}
class B extends A{
public void print(){
System.out.println("B的方法");
}
}
现在我在外部某个类中创建一个B的事例,如何通过这个实例访问到A中的print方法呢? 展开
展开全部
不能访问了,你如果new B的实例 ,他重写了A的print()方法,他一定会执行b中的print(),不管你是向上转型还是向下转型,要想通过B的实例访问A,只能A a=new A(); a.print(); 或者print()为static方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不行的,你必须在B中定义一个方法来访问父类的函数才行,例如:
class B extends A{
public void print(){
System.out.println("B的方法");
}
public void A_print() {
super.print();
}
}
B b = new B();
b.A_print();
class B extends A{
public void print(){
System.out.println("B的方法");
}
public void A_print() {
super.print();
}
}
B b = new B();
b.A_print();
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用不到,但你可以在B类中写一个方法
class B extends A{
public void print(){
System.out.println("B的方法");
}
//B的实例通过调用这个方法来调用A中的print()方法
public void superPrint(){
super.print();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以, 除非另外一个类再继承B,!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
super.print();
super表示父类
super表示父类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询