关于java子类继承父类的问题,急求答案

有两个问题,首先我想要把父类与子类放入两个不同的java文件里,那么应该把父类的文件放在什么路径里才能让子类顺利继承父类(我编译子类总是报错说无法找到继承的对象。。而且是不是只要有父类的class文件就可以了?)
第二:如果我用子类继承父类后,用子类调用父类,在执行父类的代码时,父类中又调用了子类的方法,但是父类本身没有这个方法的定义,那么由于是分开编译,父类的java能编译通过吗?(或者换一种问法,如何在一个java程序中调用另一个java程序的方法,但是调用方不能继承被调用方)

父类和子类的问题:
确认父类的方法是否使用了private修饰
并非所有的父类方法都可以被子类继承的。
其次确认子类继承父类时,是否有import 父类

【无法找到继承的对象】感觉像是没有import

编译的时候,查找的是class文件。所以父类只有class是可以的。但是需要放在同一个工程中

你说的第二个问题?好像是实现不了。父类调用子类的方法是掉不到的
想实现这个就得依靠接口了追问

问题和第二个回答者一样,BlockDirt.java并没有import但是确确实实继承了Block这个类,并且这是个游戏的一部分代码,所以不用怀疑其正确性

追答

没有import的话,如果正确,那么父类和子类应该放在一个包中,只有这样才能不适用import

追问

那我第一个问题就明白了,谢谢。但是第二个问题没有解决,问题同第二个回答者一样。麻烦看一下。。

追答

在父类中调用子类是办不到的
真的办不到

使用一个普通类不行吗?
普通类中写好父类要调用的方法
在父类中去调用就行啦

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-08
第一个问题,你在继承一个java类时,不论路径怎么样,只要你引入就可以了,就是在子类中import你的父类,这样就可以编写到2个java类中了。
第二个问题,一个java程序调用另一个java程序的方法,你要初始化一个对象,然后通过对象去调用,或者将被调用方法的定义为静态方法(static)那么就可以直接通过类来调用。
举例:
public class A {
public static void a(){
System.out.println("调用了a()方法");
}

public void aa(){
System.out.println("调用了aa()方法");
}
}

public class B{
public static void main(String[] args) {
A.a();
A obj = new A();
obj.aa();
}
}追问

追问你一下第一个问题吧:package net.minecraft.src;

public class BlockDirt extends Block
{
protected BlockDirt(int i, int j)
{
super(i, j, Material.ground);
}
}
这是一个游戏中BlockDirt.java的源码,但是并没有用到import,难道package有相同的作用?

追答

如果这么说的话,那block应该和子类在同一级目录下。这样貌似就不用引了。

追问

那我第一个问题就解决了,谢谢。麻烦帮我解决下第二个,就是那段代码中Material.ground令我很费解,事实上Material是另一个叫做Material.java的类,BlockDirt与Material甚至根本就没有继承与被继承关系,但是BlockDirt成功调用了Material中的方法,自己还通过了编译,而且Material在BlockDirt里也没有被定义,什么机制可以实现这样的操作?

第2个回答  2012-05-08
随便放哪都可以,只要可以正确地把父类import进来就行。
第二个问题 看不太懂。。。不过貌似你问了一个死循环的问题。这种情况不可能出现 放心好了
写父类的时候不可能知道子类存在,所以不可能调用了子类的方法。。
第3个回答  2021-03-24

本视频主要从Java语言基础、JavaSE核心、WEB全栈及数据库、Servlet/Jsp核心、 Java框架五个阶段进行讲解。在本教程中,会让大家从零基础快速掌握Java知识。想要配套学习资料的小伙伴可以联系我哦!

相似回答