Java 接口和类对象之间的区别

Java 接口和类对象之间的区别,java,class,oop,interface,Java,Class,Oop,Interface,我正在读甲骨文文档,但我没有得到什么 如果我有 public interface a { //some methods } public class b implements a { //some methods } 这两者之间的区别是什么: a asd=new b(); 这是: b asf=new b(); 没有这样的事。至少没有编译 a asd=new a(); // you can't instantiate an interface 及 你可以做到以下几点 b a

我正在读甲骨文文档,但我没有得到什么

如果我有

public interface a {
    //some methods
}
public class b implements a {
    //some methods
}
这两者之间的区别是什么:

a asd=new b();
这是:

b asf=new b();

没有这样的事。至少没有编译

a asd=new a(); // you can't instantiate an interface

你可以做到以下几点

b asd=new b();  


没有这样的事。至少没有编译

a asd=new a(); // you can't instantiate an interface

你可以做到以下几点

b asd=new b();  

  • 不能实例化接口

  • 如果我们假设您指的是父类,那么在第一种情况下,您不能访问类b的方法

  • 假设您有以下类:

    public class a {
    //some methods
    }
    public class b extends a {
    //some methods
        type method1(args) {...}
    }
    
    两者之间的区别是什么

    a asd=new b(); // you cannot call method1 using asd
    

  • 不能实例化接口

  • 如果我们假设您指的是父类,那么在第一种情况下,您不能访问类b的方法

  • 假设您有以下类:

    public class a {
    //some methods
    }
    public class b extends a {
    //some methods
        type method1(args) {...}
    }
    
    两者之间的区别是什么

    a asd=new b(); // you cannot call method1 using asd
    

    asd=new b()--可以在运行时解析

    b bsd=new b()--可以在编译时解析。

    a asd=new b()--可以在运行时解析


    b bsd=new b()--可以在编译时解析。

    假设我们有类b和接口a:

    public interface a{
      void foo();
    }
    public class b implements a{
      @Override
      void foo(){}
      void bar(){}
    }
    
    然后我们创建两个实例:

    a asd=new b();
    b asf=new b();
    
    现在
    asd
    是'a'的实例,因此它只能访问接口
    a
    中声明的方法(在本例中,方法
    foo


    另一方面,
    asf
    b
    的实例,因此它可以访问类
    b

    中定义的两个方法,假设我们有类b和接口a:

    public interface a{
      void foo();
    }
    public class b implements a{
      @Override
      void foo(){}
      void bar(){}
    }
    
    然后我们创建两个实例:

    a asd=new b();
    b asf=new b();
    
    现在
    asd
    是'a'的实例,因此它只能访问接口
    a
    中声明的方法(在本例中,方法
    foo


    另一方面,
    asf
    b
    的实例,因此它可以访问类
    b

    中定义的两个方法。第二个方法不可编译。您需要澄清您对
    接口的理解。另请参见第二个方法不可编译。您需要澄清您对
    接口的理解
    b
    ,对不起。我是说
    b
    ,对不起。