精华内容
下载资源
问答
  • 抽象类实现接口

    千次阅读 2018-07-11 22:30:12
    https://www.cnblogs.com/IanI/p/4549851.html众所周知普通类如果实现一个接口,那么普通类需要重写接口中的所有方法但是抽象类实现接口,可以完全覆盖/重写 接口中的方法,也可只重写接口中的某几个方法子类再继承...

    https://www.cnblogs.com/IanI/p/4549851.html


    众所周知普通类如果实现一个接口,那么普通类需要重写接口中的所有方法
    但是抽象类实现接口,可以完全覆盖/重写 接口中的方法,也可只重写接口中的某几个方法

    子类再继承抽象类时,子类重写的方法即为抽象类中未重写接口中的方法。

     

    在Java中,使用抽象类来实现接口,并不是毫无作用。相反,有时间有很大的作用。

          当你只想实现接口中的个别方法(不是所有方法)时,你可以先写一个抽象类来实现该接口,并实现除了你想要的方法之外的所有方法(方法体为空)。接着再用你的类继承这个抽象类,这个类中就只用实现你需要的方法了,这样就可以达到你的需要了。但是,如果你直接实现接口的话,你就需要实现接口的所有方法。

          通过下面例子,可以很好的理解:

          例:有一个接口Window,有三个方法,draw(),putColor(),setPosition()三个方法,程序员在设计页面时只关注对其进行位置定位(画图draw()和着色putColor()则由美工实现),所以他只需要实现setPosition()方法,而其余两个不用实现。则设计如下:

          //接口

          interface Window{

                 public void draw();

                 public void putColor();

                 public void setPosition();

          }

     

         /**

          *抽象类,不实现需要的方法。而实现的不需要的方法的方法体设为空,

          */    

         abstract class DesignedPage implements Window{

                 public void draw(){}

                 public void putColor(){}

         }

         

         /**

           * 具体实现类,实现特定的方法,该类中只有需要的方法

           */

          public class DesingedPageA  extends DesignedPage{

                 public void setPosition(){

                       //set the window position

                 }   

        }

     

      

         通常情况下,如果我们需要在具体实现类中实现draw()方法时,都是调用父类的draw()方法(super.draw())。


    展开全文
  • java抽象类实现接口

    千次阅读 2019-06-04 10:37:22
    阅读集合框架的源码的时候,发现AbstractConllection继承自Collection,我不太明白为什么使用抽象类实现接口,但是经过我查阅资料,然后自己又写了个demo,基本弄明白这么写的好处了,而且,我感觉,这就是抽象工厂...

    阅读集合框架的源码的时候,发现AbstractConllection继承自Collection,我不太明白为什么使用抽象类实现接口,但是经过我查阅资料,然后自己又写了个demo,基本弄明白这么写的好处了,而且,我感觉,这就是抽象工厂模式。

    好处就是,假设接口定义了10多个方法,但是好多方法的实现都是固定不变的,唯独有那么一两个需要实现类写出单独的逻辑,这种情况就很恶心,如果直接实现这个接口,好多方法就得复制一遍,造成代码冗余。所以,我们先使用一个抽象类实现这个接口。我们需要注意,抽象类可以实现接口的所有方法,也可以一个都不实现。接下来看我们的demo

    Trainee接口有四个方法,sing(),jump(),rap(),platBasketball().但是我只想实现platBasketball().

    上代码

    package com.study.basicJava.abstractClass;
    
    public interface Trainee {
    
        void sing();
    
    
        void jump();
    
    
        void rap();
    
    
        void playBasketball();
    }
    

    接着,使用抽象类继承接口

    package com.study.basicJava.abstractClass;
    
    public abstract class AbstractTrainee implements Trainee {
        public void sing(){
            System.out.println("唱,");
        }
        public void jump(){
            System.out.println("跳,");
        }
        public void rap() {
            System.out.println("rap,");
        }
        public abstract void playBasketball();
    }
    

    接着,是我自己的普通实现类

    package com.study.basicJava.abstractClass;
    
    public class Cxk extends AbstractTrainee {
    
        @Override
        public void playBasketball() {
            System.out.println("我是NBA**,喜欢打篮球");
        }
    }
    

    然后,看demo

    package com.study.basicJava.abstractClass;
    
    public class Demo01 {
        public static void main(String[] args) {
            AbstractTrainee trainee = new Cxk();
            System.out.print("我喜欢");
            trainee.sing();
            trainee.jump();
            trainee.rap();
            trainee.playBasketball();
        }
    }
    

    程序运行结果:

    溜了溜了。。害怕律师函警告

    展开全文
  • java抽象类实现接口可以不用实现方法 学习struts2时,拦截器接口Interceptor继承了Serializable接口,拦截器抽象类AbstractInterceptor实现了Interceptor接口,在AbstractInterceptor类中却没有声明或...

    java抽象类实现接口可以不用实现方法

    学习struts2时,拦截器接口Interceptor继承了Serializable接口,拦截器抽象类AbstractInterceptor实现了Interceptor接口,在AbstractInterceptor类中却没有声明或定义Serializable中的writeobject等其他方法

    https://www.cnblogs.com/java-demo/p/9095038.html

    众所周知,在实现类中实现接口时,必须全部重写接口的抽象方法,如

    public interface MyInter{

      function abstract void A();

      function abstract voidB();

    }

    //实现类中,必须全部重写A和B方法

    public class MyClass implements MyInter{

      public void A(){}

      public void B(){}

    }

    如果不重写接口的方法可以吗?可以,但实现类一定要是一个抽象类

    public abstract class MyClass implements MyInter{

      public void A(){} 

    }

    所以总结如下:

    由普通的类来实现接口,必须将接口所有抽象方法重写

    由抽象类来实现接口,则不必重写接口的方法。可以全部不重写或只重写一部分方法。

    posted on 2018-11-19 19:31 CreatorKou 阅读(...) 评论(...) 编辑 收藏

    展开全文
  • **抽象类可以使用implements关键字实现接口,但又不用在该抽象类实现接口里的具体方法(不实现接口的具体方法不会报错),那设计抽象类可以使用implements来实现接口有什么意义啊?** 抽象类: public ...
  • 例如: interface A {  public void say();  ...} //接口也是抽象类,抽象类实现接口可以重写接口里部分的方法或者不重写接口中的方法 class C extends B{ public void say(){ }; public
     
    
    例如:
     interface A
    public void say(); 
    public void eat(); 
    abstract class B implements A{  
    } //接口也是抽象类,抽象类实现接口可以重写接口里部分的方法或者不重写接口中的方法
     class C extends B{
     public void say(){ };
     public void eat(){ }
     } //class C里面要重写A和B里面所有的抽象方法,即一个类若继承了抽象类,抽象类里的所有抽象方法必须都要实现,包括父类继承过来的抽象方法也要实现;
    总结:当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(部分方法),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的。
    展开全文
  • 抽象类实现接口的意义

    千次阅读 2010-04-20 17:26:00
    接口是强制性的,他的所有方法都要实现但是抽象类不是比如说一个接口,你只用到其中的一两个方法,可是如果直接实现接口需要实现里面的五个方法,这时候你可以先让抽象类实现接口,然后你的类继承接口,就不需要都...
  • java 抽象类实现接口

    万次阅读 2019-09-20 15:59:33
    java 抽象类实现接口    在java中,使用抽象类来实现接口有很大的作用。    当我们只想实现接口中的其中某几个方法(不是所有方法)时,我们可以先写一个抽象类来实现该接口,并实现除了我们想要实现的...
  • java 抽象类实现接口是什么设计模式

    千次阅读 2016-09-12 19:42:47
    [JAVA设计模式]首先部分:接口抽象类、设计原则
  • 接口抽象类实现

    千次阅读 2019-04-13 10:49:25
    2. 接口能被类(抽象类和具体类)实现,区别在于抽象类实现接口,可以实现该接口的方法,也可以不实现该接口的方法;具体类必须实现接口的所有方法 3. 接口可以被接口继承,但不允许被类继承 4. 类之间可以相互继承...
  • 抽象类并不能继承接口,但可以实现接口抽象类可以继承具体类,前提是具体类必须具有构造函数且具有访问权限。这里需要说明,当一个具体类没有写构造函数时,系统会自动生成默认的无参构造器,意味着没有写构造...
  • 1、接口可以继承接口。...当使用抽象类实现接口时不需要实现所有的接口,只实现自己所需的接口就可以了。public interface DrawPannel { public void putcolor(); public void setposition(); public void
  • 抽象类接口的区别  抽象类里面可以有非抽象的方法,接口里只能有抽象方法。  抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号。    抽象类(abstract class):  a.抽象...
  • 抽象类接口,抽象类接口的区别

    千次阅读 多人点赞 2016-11-21 17:28:05
    其实愿意去真正了解抽象类接口是因为看源代码后的动力。因为接口用的太多了,对于java开发来说,现在只是一个小学 生。 看了很多大牛的文章还有自己老师的总结,然后自己总结了一些。有不对的请指出,因为是个...
  • Junit实现抽象类接口类测试

    千次阅读 2018-03-22 20:48:39
    Junit实现抽象类和接口类测试 简单的目录: Junit实现抽象类和接口类测试 Junit实现接口类测试 Junit实现抽象类测试(一) Junit实现抽象类测试(二) JUnit使用abstract类来进行测试 参考: Junit...
  • 抽象类接口的区别以及抽象类接口的使用场景

    千次阅读 多人点赞 2019-05-30 18:15:44
    一、抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就可以称之为抽象类。 1.抽象方法...
  • Java笔试面试-抽象类接口

    万次阅读 多人点赞 2019-09-15 22:29:50
    抽象类 定义:   在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。简单来说,使用...
  • 抽象类接口的区别

    万次阅读 多人点赞 2018-11-21 19:55:11
    抽象类的抽象成员可被子类部分实现接口的成员需要实现类完全实现,一个类只能继承一个抽象类,但可实现多个接口等等。 如何区分 类是对对象的抽象,抽象类是对类的抽象; 接口是对行为的抽象。 若行为跨越不同...
  • 抽象类可以实现接口吗?有什么意义?

    万次阅读 多人点赞 2019-06-03 19:49:52
    当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那...
  • 抽象类接口

    万次阅读 2015-11-14 17:16:51
    区别 抽象类 接口 关键字 abstract class interface 概念 不能实例化的类,可能包含抽象方法 抽象方法和静态常量的集合...子类继承抽象类 ...实现类实现接口 继承或实现关键字 extends impleme
  • 接口接口实现类,接口抽象类

    千次阅读 2019-02-07 16:34:56
    定义和实现接口 接口的定义包括接口声明和接口体两部分。接口体包括属性常量和抽象方法。 [public] interface 接口名 { 属性常量 ... 抽象方法 ... } interface是声明一个接口的关键字,在Java中,...
  • Java 抽象类 接口 继承 实现

    千次阅读 2016-07-23 17:21:14
    接口抽象类的概念不一样。...人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它(类实现多个接口,实现多个动作). 所以,在高级语言上,一个类只能继承一个类(抽象类,jav
  • 抽象类接口

    千次阅读 2019-05-07 20:19:15
    4、抽象类必须被继承,如果子类不是抽象类必须覆写抽象类的全部抽象方法。 定义格式; abstract class 抽象类名称{ 属性; 访问权限 返回值类型 方法名(参数) [return 返回值]; } 访问权限 abstract 返回值类型 ...
  • 抽象类继承,如果子类也是一个抽象类,并不要求一定重写父类方法。如果子类不是抽象类,则...如果是一个子抽象类,可以部分或全部实现接口的方法;如果子类不是抽象类,则要求子类一定要实现接口中定义的所有方法。
  • 单个接口的实现很好理解:如“大雁”类实现了“飞翔”接口 定义“大雁”类的时候直接重写“飞翔”接口中的方法就行了 另一种是接口继承接口 我们假设篮球运动员需要发球,女孩子需要生孩子,那么女子篮球运动员又会...
  • 抽象类接口之间的继承和实现关系  对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的...
  • 抽象类接口

    千次阅读 2020-10-01 13:21:40
    抽象类抽象类接口 抽象类 抽象类的定义:修饰符可以用来修饰方法,也可以修饰类。如果修饰方法,那么就是抽象方法,如果修饰类,那么就是抽象类 抽象类中可以没有抽象方法(即可以有普通方法),但是有抽象方法的...
  • Java基础之抽象类接口

    万次阅读 2019-11-04 13:13:03
    在工作中我们并不会经常用到抽象类,或者即使使用到了也只是在遵从整个项目的架构而在生成接口。例如我们经常看到许多公司的项目中大量service实际上没有多种实现,却将Service分为了service抽象类和implement实现类...
  • Java抽象类接口

    千次阅读 2016-06-07 11:20:39
    抽象类接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。 一、抽象类 我们都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 728,432
精华内容 291,372
关键字:

抽象类实现接口