(JAVA)一个接口可继承多个接口和抽象类继承接口的问题?

发布于 2022-01-01 12:14:48 字数 1910 浏览 857 评论 7

package jiu;
interface A 
{   // 定义一个接口
    String INFO = "Hello World ." ;//全局常量
    void print() ;  // 抽象方法
}
interface B
{   // 定义一个接口
    public abstract void get() ;//抽象方法
}
abstract class C implements A,B 
{   // 抽象类实现了A和B接口
    public abstract void fun() ;    // 抽象方法一共有三个
}
interface D extends A,B
{   // 同时继承两个接口
    public void printD() ;
}
class X extends C implements D  
{ // 先继承后实现
    public void print()
    {
        System.out.println(INFO) ;
    }
    public void get() 
    {
        System.out.println("你好!") ;
    }
    public void fun() 
    {
        System.out.println("抽象类C实现接口A,B") ;
    }
    public void printD() 
    {
        System.out.println("接口D继承两个接口A,B") ;
    }
}
public class AbstractInterfaces  
{
    public static void main(String args[]) 
    {
        X x = new X() ; // 实例化子类对象
        A a = x ;   // 为父接口实例化
        B b = x ;   // 为父接口实例化
        C c = x ;   // 为抽象类实例化
        D d=x;      //父接口实现化
        a.print() ; 
        b.get() ;
        c.fun();
        d.printD();   
    }
}
1.接口A中的全局常量为什么没有用static修饰?

2.抽象类C既然实现了接口A和B,为什么没有实现接口A和B中的抽象方法(抽象类中可以有一般方法)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

心欲静而疯不止 2022-01-08 05:55:15

抽象类C既然实现了接口A和B,为什么没有实现接口A和B中的抽象方法(抽象类中可以有一般方法)?

夜血缘 2022-01-08 05:34:57

回复
"class C implements A,B" 表明:类 C 要实现接口A和B。在 类 C的定义中,如果将 接口A和B 所示的所有抽象方法 都 "具体化" 为 有定义代码块的方法,则 类 C 就是一个可以被实例化的,即可以创建对象的类。否则,类 C 是抽象的。这里,类C没有定义好接口A和B 中的 全部抽象方法, 因此类C是抽象的。

凌乱心跳 2022-01-08 05:26:03

回复
@tcxu : 抽象类中可以没有抽象方法,但它依然不能直接实例化

筱武穆 2022-01-07 20:57:00

回复
正因为抽象类 C 没有实现接口A和B中的抽象方法, 抽象类 C 仍然(必须)视为抽象类,必须冠以 abstract, 它不可实例化。 实现接口A和B中的抽象方法的任务,将交给 抽象类 C 的子类 class X 来完成。正是因为 class X 完成了定义所有的抽象方法的任务,所以它可以被实例化。

情场扛把子 2022-01-07 19:21:03

1.接口里面的定义的常量默认就是static的,static写不写都没影响的

睫毛上残留的泪 2022-01-05 22:39:43

我说的static修饰,意思是说全局常量:public static final String INFO = "Hello World ." ;为什么不这样修饰?

风苍溪 2022-01-03 07:51:20

回复
如 漂浪天下 所说,"接口里面的定义的常量默认就是static的,static写不写都没影响的"。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文