首页 > 试题广场 >

如果一个接口Glass有个方法setColor(),有个类B

[单选题]

如果一个接口Glass有个公有方法setColor(),有个类BlueGlass实现接口Glass,则在类BlueGlass中正确的是?  ( )



  • protected void setColor() { …}
  • void setColor() { …}
  • public void setColor() { …}
  • 以上语句都可以用在类BlueGlass中
子类的权限不能比父类更低
发表于 2017-05-19 11:47:19 回复(11)
JAVA 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放,假如我父类是protected修饰的,其子类只能是protected或者public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者子类抛出的异常要比父类抛出的异常要少。
发表于 2017-09-13 12:35:05 回复(7)
接口中属性为public static final。方法为public abstract。
发表于 2017-05-29 16:06:04 回复(11)
接口的成员常量具有固定的修饰符:public static final
接口的成员函数具有固定的修饰符:public abstract

  • 对于接口中的固定修饰符,可以省略。
  • 一个类实现多个接口时,接口与接口之间要用逗号隔开。
  • 接口的变量必须引用实现了接口的类对象。
发表于 2017-08-30 20:17:54 回复(0)
interface
1. 特殊的抽象类:彻底抽象,没有构造器,只有常量(public static final)与抽象方法(public abstract)。
2. 实现接口的类,必须重写接口中的所有抽象方法,若没有全部重写,则此类仍然是抽象类。
3. 实现接口类,其类中的方法权限不能低于接口,故为:public 

例子:
interface AA {
    // 常量:只能是常量,所有的常量都是用public static final修饰的
    int I = 12; // public static final 
    public static final boolean FLAG = false;
    
    // 抽象方法:所有的都用public abstract
    void method1();
    public abstract void method2();
}
class CC implements AA {

    @Override
    public void method1() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void method2() {
        // TODO Auto-generated method stub
        
    }    
}

发表于 2018-04-08 15:32:49 回复(0)
接口实现一般都使用public;子类继承父类时,重写方法权限大于等于父类(public>protected>default>private),抛出异常的类型小于等于父类的权限
发表于 2020-02-12 10:31:06 回复(0)
选C
这题就考了两个点:
1. 虽然JDK8接口中可以有static或者default修饰的方法,但是这两种方法必须有方法体。同时接口中的方法默认还是public abstract的
2. 类对接口的实现,其实体现了多态性,因为类需要重写接口中所有的抽象方法。而重写需要满足两同两小一大:
    1. 方法名和形参列表一致。
    2. 重写方法的返回值(引用类型)和抛出的异常,必须是被重写方法的子类或者和被重写方法一样。一旦返回值是基本数据类型,那么重写方法和被重写方法必须一致。
    3. 重写方法的访问修饰符大于等于被重写方法的访问修饰符。
发表于 2018-07-23 12:22:25 回复(1)
我的理解: 假设 父类方法的访问修饰符是public 子类方法的访问修饰符是private 父类引用指向子类对象 父类的引用调用了上述被重写的方法 结果 编译通过 运行时,实际调用的是子类的方法,但是该方法是private修饰的,不可访问,会出现运行时异常 结论 子类方法的访问权限要大于等于父类方法访问权限
编辑于 2019-01-17 23:05:43 回复(0)
接口与继承接口的方法都应该为public
发表于 2017-05-27 11:13:55 回复(0)
因为其一:不知道子类的位置是不是和父类在同一个包下,其二:子类的权限不能小于父类的权限;

1.若在同一个包下,还能用第一选项和第三选项;
2.若不在同一包下,就要使用public,
综上,选用大权限的。
发表于 2019-02-27 16:56:54 回复(0)
重写:两同两小一大。权限修饰符大于等于父类被重写的方法。 方法名,形参同。 返回值大小,抛出的异常小于等于父类方法。 死记硬背!
发表于 2022-09-05 20:44:36 回复(0)
接口中的方法的访问权限为 public,继承原则:JAVA 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大
发表于 2018-03-03 19:33:49 回复(0)
子类比父类更开放

发表于 2018-01-24 19:57:42 回复(0)
1. 虽然JDK8接口中可以有static或者default修饰的方法,但是这两种方法必须有方法体。同时接口中的方法默认还是public abstract的 2. 类对接口的实现,其实体现了多态性,因为类需要重写接口中所有的抽象方法。而重写需要满足两同两小一大: 1. 方法名和形参列表一致。 2. 重写方法的返回值(引用类型)和抛出的异常,必须是被重写方法的子类或者和被重写方法一样。一旦返回值是基本数据类型,那么重写方法和被重写方法必须一致。 3. 重写方法的访问修饰符大于等于被重写方法的访问修饰符。
发表于 2022-04-20 08:48:00 回复(0)
最基础详细解释来了!!!
接口Glass有个方法setColor()  即我们可以知道public static final setColor();(权限修饰符为public)
A中权限修饰符为protected、B中权限修饰符为default、C中权限修饰符为public
权限修饰符 同一类内 同一包内 子 类 任何地方
private
default(缺省)
protected
public
子类的权限不能比父类更低 所以由上表可知 在类BlueGlass中修饰符只能为public或者更大
编辑于 2021-11-11 09:16:16 回复(0)
JAVA 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放,假如我父类是protected修饰的,其子类只能是protected或者public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者子类抛出的异常要比父类抛出的异常要少。
发表于 2021-06-02 19:30:24 回复(0)
不可以降低方法的访问权限!!!!
发表于 2021-05-04 21:08:41 回复(0)
子类的权限不能比父类的权限更低
接口中方法的属性为 public abstract
变量的属性为 public static final 
发表于 2018-12-31 14:29:20 回复(0)
子类重写父类的方法时,修饰符访问权限必须大于父类的方法
发表于 2018-09-29 00:08:15 回复(0)
子类实现接口时,必须覆写其中的全部抽象方法。抽象方法为public abstract 返回值类型 方法名();而在覆写方法时,要求覆写后的抽象方法不能有比父类中的抽象方法更为严格的访问权限。本题中只能为public。
发表于 2018-02-28 10:51:44 回复(0)