JAVA面试题解析:接口、抽象类与实体类的关系

需积分: 0 0 下载量 122 浏览量 更新于2024-09-25 收藏 123KB DOC 举报
"JAVA面试题-COREJAVA部分" 在Java编程语言中,面试问题往往涉及到核心概念和技术,以便评估候选人的基础知识和理解能力。以下是一些重要的Java知识点,基于提供的面试题: 1. **接口与接口继承**: 接口在Java中是一种完全抽象的类型,它只能包含常量定义(final static fields)和抽象方法。接口之间可以通过`extends`关键字进行继承,允许一个接口继承另一个接口的所有方法和常量。但是,接口不能`implements`其他接口,因为接口不包含具体实现。 2. **抽象类与接口的关系**: 抽象类是可以包含抽象方法(没有方法体的方法)的类。抽象类可以通过`implements`关键字实现一个或多个接口,提供接口方法的具体实现。接口不能实现抽象类,因为接口是完全抽象的,不包含实现。 3. **抽象类与实体类的继承**: 抽象类可以继承实体类(非抽象类),但实体类需要有一个无参数的构造函数,这是因为抽象类的实例不能直接创建,只能通过子类来实例化。如果实体类没有无参构造器,那么抽象类无法实例化其父类,这违反了Java的规则。 4. **main方法与非静态方法**: `main`方法是程序的入口点,必须是静态的,因此不能直接调用非静态方法。要调用非静态方法,需要先创建对象,然后通过对象来调用。 5. **公共类与文件**: 每个Java源文件只能包含一个公共类(public class),并且公共类的名称必须与文件名相同。如果文件中有多个类,它们可以是非公共的(非public),在这种情况下,可以有任意数量的非公共类。 6. **构造器与方法名**: 构造器是一个与类同名且没有返回值的方法,用于初始化新创建的对象。在同一类中,方法名可以与构造器相同,但方法需要有不同的参数列表以避免混淆。 7. **线程的创建**: 创建线程有两种方式:直接继承`Thread`类或者实现`Runnable`接口。无论哪种方式,都需要重写`run`方法,这是线程执行的主要逻辑。即使没有显式定义`run`方法,如在`ThreadClass`中继承`Thread`,Java会提供一个空的`run`方法,但为了使线程有意义,需要提供自己的实现。 8. **局部内部类与变量访问**: 局部内部类(定义在方法或代码块内的类)不能直接访问方法中的局部变量,除非这些变量是`final`的。然而,局部内部类可以访问其所在类的所有成员变量,包括实例变量和静态变量。 这些面试题涵盖了Java的基础语法、面向对象特性以及多线程等核心概念,是评估开发者基本技能的关键点。熟悉并理解这些问题的答案对于Java开发者来说至关重要。