各位大哥,我写了两个类如下:
public class A {
public void go(){
System.out.println("go test!");
}
}
/////////////////////////////////////////////////////////////////////
public class B extends A{
public void back(){
System.out.println("back test!");
}
public static void main(String args[]){
A s=new B();
//为什么对象s只能调用类A的方法go(),而不能调用类B的方法back()
s.go();
}
}
这样创建的对象s听说是属于类B的,但是s只能调用类A的方法go(),而不能调用类B的方法back()呢?怎么样才能让s调用到类B的方法呢?这个问题我知道很弱,但我还是不知耻的问一问大家,请各位赐教啊!
public class A {
public void go(){
System.out.println("go test!");
}
}
/////////////////////////////////////////////////////////////////////
public class B extends A{
public void back(){
System.out.println("back test!");
}
public static void main(String args[]){
A s=new B();
//为什么对象s只能调用类A的方法go(),而不能调用类B的方法back()
s.go();
}
}
这样创建的对象s听说是属于类B的,但是s只能调用类A的方法go(),而不能调用类B的方法back()呢?怎么样才能让s调用到类B的方法呢?这个问题我知道很弱,但我还是不知耻的问一问大家,请各位赐教啊!
解决方案 »
- MAP有关问题
- 利用網頁來傳送位置執行Java bean並且修改JAVA程式的檔案讀取位置
- 什么时候需要自定义Exception
- 正则表达式
- SQL 2000连接问题!
- 我有一个APPLET的人机对战五子棋程序,哪位能帮我改成机机对战的。要的下面发邮箱
- 在struts + hibernate设计中如何将action获得的对象集合在网页上表示出来
- 关于Xml解析的问题,急请教!!
- 求助!介绍最好的JAVA下的IDE (JB除外)
- !!!!!!!!树的实现方式!!!!!!!!!!!!
- 导师给的题目,大家有没有好的测试方案,或是相关的资源,欢迎指导
- 高分跪求利用POI提取WORD文档内容的方法!!!!
这样写又是什么意思呢?
其次,你的问题不简单
最后,请看我的答案:s是一个指向A类的Reference, 因为A中没有定义back()方法,所以s不能访问B.back();
若再A类中定义一个back()方法就可以访问B.back()方法了,如下所示:
class A {
public void go(){
System.out.println("go test!");
}
public void back() {
System.out.println("This is A back");
}
}
确切讲不能叫访问B.back(),而应称为运行B.back(),为什么呢?这涉及到运行期对象识别问题。
在编译期间,s是一个指向A的Reference,但在运行时,s实际指向的是B类,所以当运行s.back()时就调用B.back(),不知我讲明白没有?
class A {
public void go(){
System.out.println("go test!");
}
public void back() {
System.out.println("This is A back");
}
}public class B extends A{
public void back(){
System.out.println("back test!");
}
public static void main(String args[]){
A s=new B();
//为什么对象s只能调用类A的方法go(),而不能调用类B的方法back()
s.go();
s.back(); //输出back test
}
}