Java多态&接口&抽象类&内部类练习

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.请分析如下程序是否会报错并说明原因

Java多态&接口&抽象类&内部类练习_第1张图片

 答:InerImol不是一个抽象类,需要重写FU类Animal里的方法,题中没有重写所以报错

6.请分析如下程序是否会报错并说明原因?

Java多态&接口&抽象类&内部类练习_第2张图片

 答:会报错
    因为父类Animal里没有定义eat方法,编译不通过所以报错

7.请分析如下程序在控制台的输出结果是什么并说明原因?

Java多态&接口&抽象类&内部类练习_第3张图片

 答:6
Dog吃东西
多态中成员方法特点
成员变量:编译看左边,运行看左边
成员方法:编译看左边,运行看右边

8.请分析如下程序在控制台的输出结果是什么并说明原因?以及如何避免该问题?

Java多态&接口&抽象类&内部类练习_第4张图片

 答: 找不到或无法加载主类

Animal本质的类型为Dog,不能将Dog转换成Cat,Dog和Cat之间不存在子父类的继承关系


怎么避免该问题:在进行类型转换的时候,可以通过instanceof关键字进行类型的判断

你可能感兴趣的:(Java练习,java)