1.请分析如下程序是否会报错(编译版本JDK1.8)并说明原因?并给出正确的代码!
答:jdk1.8接口中允许定义`含有方法体的非抽象方法`,但是需要关键字`default`修饰 题目中method没有default修饰
代码:
public interface Inter{
public abstract void show();
public default void method(){
System.out.println("非抽象的method方法");
}
}
2.请分析如下程序是否会报错并说明原因?并给出正确的代码!
答:会报错
父接口和子类之间是实现关系,通过`implements`实现
代码:
public interface Inter{}
class InterIpl implements Inter{}
3.请分析如下程序是否会报错并说明原因?并给出正确的代码!
答: 会报错
因为:接口和接口之间是继承
接口和类是实现
代码:
interface Inter1{}
interface Inter2{}
public interface Inter extend Inter1,Inter2{}
4.请分析如下程序那几行代码会报错并说明原因?
答: 第10行
有默认修饰符 public static final number是个常量,不能被再次赋值
5.请分析如下程序是否会报错并说明原因
答:InerImol不是一个抽象类,需要重写FU类Animal里的方法,题中没有重写所以报错
6.请分析如下程序是否会报错并说明原因?
答:会报错
因为父类Animal里没有定义eat方法,编译不通过所以报错
7.请分析如下程序在控制台的输出结果是什么并说明原因?
答:6
Dog吃东西
多态中成员方法特点
成员变量:编译看左边,运行看左边
成员方法:编译看左边,运行看右边
8.请分析如下程序在控制台的输出结果是什么并说明原因?以及如何避免该问题?
答: 找不到或无法加载主类
Animal本质的类型为Dog,不能将Dog转换成Cat,Dog和Cat之间不存在子父类的继承关系
怎么避免该问题:在进行类型转换的时候,可以通过instanceof关键字进行类型的判断