interface Com{ int MAX=100;// 【1】 void f0; } abstract class Animal implements Com { int MIN; //【2】 } class Dog extends Animal{ void f(){//【3】 MIN =10; // 【4】 MAX=20; //【5】 } } public class TestDemo{ public static void main(String[] arr){ Com c=new Dog(); System.out.println(c.MAX+”,”+c.MIN);// 【6】 } } 请认真阅读上代码,请问哪几行代码有错?什么原因导致的?
时间: 2024-04-05 17:34:49 浏览: 122
Interface的测试代码,请光临
第 4 行和第 6 行代码有错。
第 4 行代码错误的原因是,MIN 是 Animal 类的实例变量,而 Dog 类并没有定义或初始化它,因此在 Dog 类的方法中无法直接访问它。如果要使用 MIN,需要在 Dog 类中先定义并初始化它,或在 Animal 类中将它定义为静态变量。
第 6 行代码错误的原因是,接口中定义的变量 MAX 是静态常量,可以通过接口名直接访问,而不能通过实现接口的类的对象访问。因此应该使用 Com.MAX 而不是 c.MAX。同时,Animal 类中的 MIN 是实例变量,需要先创建一个 Animal 类的对象才能访问它,但是 Dog 类并没有调用 Animal 类的构造方法创建 Animal 类的对象,因此无法访问 MIN。
阅读全文