Fle*_*her 38 java inheritance package final-class
这是我的代码:
package basic;
public abstract class Entity {}
Run Code Online (Sandbox Code Playgroud)
package characters;
import basic.Entity;
public abstract class Character extends Entity {}
Run Code Online (Sandbox Code Playgroud)
package player;
public class Player extends Character {}
Run Code Online (Sandbox Code Playgroud)
我得到了
该类型
Player不能继承final class Character.
但我检查了一百万次,我还没有final在我的项目中使用除了ONCE.是什么赋予了?
Chr*_*ris 17
Character是一类java.lang("char"的包装类).你必须在你的Player类中导入characters.Character
package player;
import characters.Character
public class Player extends Character {
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我强烈建议使用完全合格的名称中的Character类的extends条款.
public class Player extends characters.Character {}
Run Code Online (Sandbox Code Playgroud)
经验丰富的Java开发人员知道这java.lang.Character是因为final并且因此无法扩展.通过写作class Player extends Character,你可能会让他们感到困惑.
每个编译单元都隐式导入在预定义包中声明的每个公共类型名称
java.lang,就好像声明import java.lang.*;在任何包声明之后立即出现在每个编译单元的开头.因此,所有这些类型的名称在每个编译单元中都可以作为简单名称使用.
当然,选择一个不会与标准java.lang包中的类冲突的名称(如Person,或GameCharacter)会更合理.
Character是 Java Docs中定义的最终类:
public final class Character
extends Object
implements Serializable, Comparable<Character>
Run Code Online (Sandbox Code Playgroud)
所以它不能分类.
您正在从此Character类中获取错误,该类正在被隐式导入.谨防!.
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |