有两个问题,首先我想要把父类与子类放入两个不同的java文件里,那么应该把父类的文件放在什么路径里才能让子类顺利继承父类(我编译子类总是报错说无法找到继承的对象。。而且是不是只要有父类的class文件就可以了?)
第二:如果我用子类继承父类后,用子类调用父类,在执行父类的代码时,父类中又调用了子类的方法,但是父类本身没有这个方法的定义,那么由于是分开编译,父类的java能编译通过吗?(或者换一种问法,如何在一个java程序中调用另一个java程序的方法,但是调用方不能继承被调用方)
问题和第二个回答者一样,BlockDirt.java并没有import但是确确实实继承了Block这个类,并且这是个游戏的一部分代码,所以不用怀疑其正确性
追答没有import的话,如果正确,那么父类和子类应该放在一个包中,只有这样才能不适用import
追问那我第一个问题就明白了,谢谢。但是第二个问题没有解决,问题同第二个回答者一样。麻烦看一下。。
追答在父类中调用子类是办不到的
真的办不到
使用一个普通类不行吗?
普通类中写好父类要调用的方法
在父类中去调用就行啦
追问你一下第一个问题吧: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里也没有被定义,什么机制可以实现这样的操作?
本视频主要从Java语言基础、JavaSE核心、WEB全栈及数据库、Servlet/Jsp核心、 Java框架五个阶段进行讲解。在本教程中,会让大家从零基础快速掌握Java知识。想要配套学习资料的小伙伴可以联系我哦!
什么是继承java
继承java意思就是子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法。定义一个继承的语法:修饰符class子类类名extends父类名{\/\/类定义部分},这就是一个继承的一个语法模式,记住关键字extends。继承是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就...
JAVA 对象类型转换---子类转换父类
子类继承父类,它可以继承到父类的非私有成员变量,以及方法。 也就是说这个子类的对象完全可以当作父类的对象来用,因为它拥有所有父类的方法,和成员 所以,在Java里面,父类的引用可以指向子类对象。 1.A a = b;因为b是B类的对象,B类继承自A类,所以A a = b;没有问题。等于 A a = new...
java中子类强转父类的问题
你既然调用set方法,那就一定要构造对象去调用。无非是new 父类().setS("test"),这种方法时,回去调用父类的这个set方法,将test赋值给父类的S变量。或者new 子类().setS("test"),如果new子类的方法,就不能放在无参构造函数中。你可以放在main方法中,还是将test赋值给父类的S变量。get set方...
软件工程继承名词解释
软件工程中的继承名词是指面向对象编程中的一个概念,指的是一个类(子类)从另一个类(父类)那里继承属性和方法。这种继承关系允许子类继承父类的所有属性和方法,同时也可以添加自己的属性和方法,从而实现对原有代码的扩展和重用。在实际编程中,继承是一种重要的软件设计模式,可以提高代码的可重用...
java中父类在子类中创建父类对象是不是也会掉用对应子类的构造函数?
Circle c = new Circle(4.0);你可以试下吧这行代码也注释掉,你会发现不new 父类对象一样会报错。现在来说说编译报错的原因。首先说两点:子类构造方法会调用父类构造方法 如果不写构造方法,java是默认了创建一个无参构造方法。而一旦自定义了一个构造方法,那么不论这个构造方法的参数情况是怎样的...
java提示公用类必须在自己的文件中定义怎么修改
1、把文件名修改同公共类一样的名字。2、把类名修改成同文件名。3、子类继承父类时。不需要再用public修饰。同一文件中,不能有多于一个public声明的类出现,可以将其中一个public去掉,即不加任何修饰符,通常称为“默认访问模式”,在该模式下,这个类只能被同一个包中的类访问或引用,这一访问...
java初级面试题目?
java基础面试题 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一...
配置Hadoop显示JAVA_HOME is not set。急求答案,谢谢!
没看清就乱回答,这是因为你修改hadoop-env.sh时用的是window自带的写字板,保存的时候用的是window的回车换行\\r\\n,只需要用工具打开hadoop-env.sh,另存成linux格式的就可以了
A继承B的学说怎么画箭头
1. 在绘制类图时,需要区分不同的类关系。这些关系包括泛化(继承)、实现、聚合、组合、关联和依赖。2. 泛化关系表现为一个类继承另一个类的特性,用单向箭头表示。这种关系表明子类继承了父类的属性和方法。3. 实现关系表示一个类实现了另一个类的接口,用带空心箭头的虚线表示。这表明实现类将遵循...
java题求解!!
而且修饰的方法不能被需改。意思是最终的。C错 原因:抽象这个可以被继承、而且当然能被重载了。只要不是final就可以。D对 原因:如果没有添加final关键字修饰 都可以被重写,而且abstract可以无大括号。例如:abstract void add(); \/\/也就是用于重写的,只要你继承这个类,必须重写abstart的方法。