精华内容
下载资源
问答
  • 一个类实现接口要实现所有方法
    千次阅读
    2021-03-15 08:47:51

    不一定,关键要看子类是否是抽象类

    如果子类是非抽象类,则必须实现接口中的所有方法;

    如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!

    更多相关内容
  • 如果子类是非抽象,则必须实现接口中的所有方法;如果子类是抽象,则可以不实现接口中的所有方法,因为抽象中允许有抽象方法的存在!1、抽象定义抽象往往用来表征对问题领域进行分析、设计中得出的抽象...

    不一定,关键要看子类是否是抽象类。

    如果子类是非抽象类,则必须实现接口中的所有方法;

    如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!

    1、抽象类定义

    抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是 不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

    2、抽象类特点

    1)抽象类不能实例化。

    2)抽象类可以包含抽象方法和抽象访问器。

    3)不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。

    4)从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。

    3、与具体类的比较

    1)抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。

    2)允许(但不要求)抽象类包含抽象成员。

    3)抽象类不能被密封。

    4、与接口的比较

    1)相同点

    a、不能实例化;

    b、包含未实现的方法声明;

    c、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)

    2)不同点

    a、类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。

    b、抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。

    c、抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。

    d、抽象类是对象的抽象,然而接口是一种行为规范。

    展开全文
  • 是的,必须在实现接口中实现所有方法,直到并且除非该被声明为抽象。只有两选择-实现接口定义的每方法。将该声明为抽象,结果迫使您在创建任何对象之前先对该进行子类化(并实现缺少的方法)。不...

    是的,必须在实现接口的类中实现所有方法,直到并且除非该类被声明为抽象类。

    只有两个选择-实现接口定义的每个方法。

    将该类声明为抽象类,结果迫使您在创建任何对象之前先对该类进行子类化(并实现缺少的方法)。

    类不需要在接口中实现所有方法的唯一情况是,当其继承树中的任何类已经提供了具体的(即非抽象的)方法实现时,子类就没有义务重新实现这些方法。子类可能根本不实现接口,而只是方法签名被匹配。

    示例interface MyInterface {

    void m() throws NullPointerException;

    }

    class SuperClass {

    //SuperClass类未实现MyInterface接口

    public void m() {

    System.out.println("Inside SuperClass m()");

    }

    }

    class SubClass extends SuperClass implements MyInterface {

    }

    public class Program {

    public static void main(String args[]) {

    SubClass s = new SubClass();

    s.m();

    }

    }

    输出结果Inside SuperClass m()

    上面的代码显示了一个具体的类SubClass,该类声明其实现了接口MyInterface,但未实现m()该接口的方法。该代码是合法的,因为它是父类的SuperClass实现m()与接口中的方法同名的方法。

    展开全文
  • 一个类实现接口和继承抽象对于抽象方法的实现原则是相同的: (1)如果这个是个普通,那么必须实现这个接口/抽象所有抽象方法; (2)如果这个是个抽象,那么不必实现这个接口/抽象的抽象方法,...

     一个类实现接口和继承抽象类对于抽象方法的实现原则是相同的:

       (1)如果这个类是个普通类,那么必须实现这个接口/抽象类的所有抽象方法;

       (2)如果这个类是个抽象类,那么不必实现这个接口/抽象类的抽象方法,因为抽象类中可以定义抽象方法

     

    • 接口中定义的属性必须是public static final的,方法为public abstract的,这些修饰父都可以省略掉
    • 抽象类中不一定包含抽象方法,包含抽象方法的类一定要声明为抽象类。

     

    抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是抽象类。 包含抽象方法的类一定是抽象类,但抽象类中的方法不一定是抽象方法。 抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类。所以,java中 抽象类里面可以没有抽象方法。比如HttpServlet类。抽象类和普通类的区别就在于,抽象类不能被实例化,就是不能被new出来,即使抽象类里面没有抽象方法。 抽象类的作用在于子类对其的继承和实现,也就是多态;而没有抽象方法的抽象类的存在价值在于:实例化了没有意义,因为类已经定义好了,不能改变其中的方法体,但是实例化出来的对象却满足不了要求,只有继承并重写了他的子类才能满足要求。所以才把它定义为没有抽象方法的抽象类。

    展开全文
  • JAVA:一个类实现多个接口

    千次阅读 2021-02-12 16:54:17
    它们之间区别:接口是公开的,里面不能有私有的方法或变量,而抽象是可以有私有方法或私有变量的;代码演示:接口Apublic interface A {public abstract void play() ;public abstract void beFriendly();}接口B...
  • 这里看这个类是否是非抽象的,如果是普通的,必须去实现接口所有方法,如果是抽象类类,则可以不去实现, 在Java中抽象就是使用abstract关键字修饰的种特殊的,抽象可以不去实现接口的抽象方法,...
  • 接口是一种规范,使得别人在实现接口的时候需要完成接口中那未实现的方法,普通一旦实现接口就必须完成接口内所有未实现的方法,但是可以通过别的方式只去实现部分方法: 先定义一个Demo接口,写入三个方法 再定义一个...
  • Java中,一个非抽象类实现了某接口,则必须实现接口中的所有方法。 而抽象类实现某个接口,可以不实现所有接口的方法,可以由它的子类实现
  • 1.结论 并不是所有的类实现接口后都必须实现接口所有方法!2.特殊情况 当Java抽象实现某个接口后没必要实现所有的方法。3.注意点 当Java普通类实现接口后必须实现接口中的所有方法。4.原因为什么抽象不需要...
  • 1、一个实现类实现多个接口 例如:serviceImpl implements Interface1,Interface2 在controller中 @AutowiredInterface1 只能调用Interface1接口方法 总结,注入单个接口,只能调用对应的接口方法 2、一个...
  • 众所周知,在实现实现接口时,必须全部重写接口的抽象方法,如 public interface MyInter{  function abstract void A();  function abstract voidB(); } //实现中,必须全部重写A和B方法 public class ...
  • 而抽象在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象一个典型应用,假设某个项目的所有Servlet用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个...
  • 2.接口之间是多实现的,一个类可以实现多个接口 3.接口接口之间是多继承的 详细解释: 一、一个类的直接父类只有一个,但可以实现多个接口: public class MyInterfaceImpl implements MyInterfaceA,...
  • Java中,一个类实现某个接口,必须重写接口中的所有方法吗?“Java中,一个类实现了某接口,则必须实现接口中的所有方法么?”这句话其实是不准确的,因为我们还没有考虑到抽象。抽象类实现某个接口,可以不实现...
  • 一个接口多个实现,指定实现类

    万次阅读 2018-04-14 21:49:38
    目的:一个接口多个实现时,根据不同的条件调用不用的实现1、有如下接口public interface Pay { public Object pay(Map<String,Object> map); }2、有如下两个实现实现一:@Service("weixinPay&...
  • java一个接口拥有多个实现类,调用指定实现类
  • java开发中调用一个接口方法时是怎么调用到该接口实现类的?
  • 关键在于: applicationContext.getBeansOfType(ChartService.class);... 获得Map对象的key为实现类的名称如:chartSimpleServiceImpl 获得Map对象的value为实现类对象如:com.read.data.cms.service.impl.Char...
  • 一个接口多个实现类,如何指定特定实现类进行调用示例解决方法 在写程序的时候经常会遇到 写一个接口有多个实现类,那么在调用的时候是如何去确定调用的是哪个实现类呢?接下来将为你介绍几种方式: 示例 总接口 ...
  • 一个类实现接口和继承抽象对于抽象方法的实现原则是相同的: (1)如果这个是个普通,那么必须实现这个接口/抽象所有抽象方法; (2)如果这个是个抽象,那么不必实现这个接口/抽象的抽象方法,...
  • 查找接口的实现: IDEA 风格 ctrl + alt +B IDEA快速实现接口快捷方式 ALT +INSERT 例如:查看Subject接口的实现;.......Alt + Enter 引入 ...Ctrl + O 查看我们继承...查看接口实现类方法(就是我们使用接...
  • Java中类实现接口要实现父类里面的全部的方法和属性吗?
  • 定义一个接口,并定义相应的来实现实现接口中的方法 */ public interface Circle {//定义接口 double PI = 3.1415;// 定义常量 void setRadius(double radius);// 定义抽象方法 double area();// 定义抽象...
  • 当A要实现一个接口中个别方法是(不是所有方法),可以创建一个抽象去实现该接口,然后在有A去继承这个抽象。注意:这个抽象必须重写这个接口所有方法,A才可以实现其中的个别方法;如果抽象没有...
  • 方法 的方式,通过ctrl+alt+b快捷键发现接口有多个实现类 这种情况恰可以使用debug,来查看具体调用的是哪个实现类方法,操作如下: 1.打断点 2.以debug模式运行项目 3.在断点处,复制想查看的代码,并在...
  • 一个接口对应多个实现类 一个接口对应对个实现类,需要注入指定的实现类。 如:Interface接口下有两个实现类InterfaceImpl1和InterfaceImpl2。 接口: package com.example.service; public interface Interface1...
  • java中,一个类实现某个接口,必须重写接口中的所有方法吗? 不一定,关键看子类是否是抽象。 如果子类是非抽象,则必须实现接口中的所有方法;  如果子类是抽象,则可以不实现接口中的所有方法,因为抽象...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,075,671
精华内容 1,630,268
热门标签
关键字:

一个类实现接口要实现所有方法