精华内容
下载资源
问答
  • (1)接口可以被多重实现(implements),抽象类只能被单一继承(extends)  (2)接口只有定义,抽象类可以有定义和实现  (3)接口的字段定义默认为:public static final, 抽象类字段默认是”friendly”(本包可见) ...

    implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。实现一个接口,必须实现接口中的所有方法.

    注意: 
    (1)接口可以被多重实现(implements),抽象类只能被单一继承(extends) 
    (2)接口只有定义,抽象类可以有定义和实现 
    (3)接口的字段定义默认为:public static final, 抽象类字段默认是”friendly”(本包可见) 

    例如:

    People是一个接口,他里面有say这个方法。
    接口的定义:
    public interface People{
    public void say();
    }
    但是接口没有方法体。只能通过一个具体的类去实现其中的方法体。
    比如 Chinese这个类,就实现了People这个接口。
    接口的实现:
    public class Chinese implements People{
    public void say() {
    System.out.println(” 你好!”);
    }

    接口的调用: 
    People chinese = new Chinese() ; 
    chinese.say(); 

     

    extends,表示对父类的继承,可以实现父类,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。
    implements,表示对接口的实现,接口通过关键字interface 进行定义

    eg:public class S implements F,在接口F中对方法进行声明,在类S中对该方法进行实现。
    这两种实现的具体使用,是要看项目的实际情况,需要实现,不可以修改implements,只定义接口。需要具体实现,或者可以被修改扩展性好,用extends

     

     

    ActionListener:

    接口ActionListener只有一个方法,即actionPerformed()。所有实现了ActionListener的类都必须包含一个与下面函数类似的方法:

    public void actionPerformed(ActionEvent   event)  {

    }

    展开全文
  • Java中,一个接口可以extends多个接口

    万次阅读 2015-03-29 14:39:03
    Java中,一个类不能继承多个类,但是一个接口可能继承多个接口。下面是Java代码示例: package interfaceextends; public interface LaughBehavior { public void laugh(); } package interfaceextends; ...

    Java中,一个类不能继承多个类,但是一个接口可能继承多个接口。下面是Java代码示例:

    package interfaceextends;
    
    public interface LaughBehavior {
    	public void laugh();
    
    }

    package interfaceextends;
    
    public interface SpeakBehavior {
    	public void speak();
    
    }

    package interfaceextends;
    
    public interface PersonBehavior extends SpeakBehavior, LaughBehavior {
    
    }

    package interfaceextends;
    
    public class Person implements PersonBehavior {
    
    	@Override
    	public void speak() {
    		// TODO Auto-generated method stub
    		System.out.println("person speak");
    
    	}
    
    	@Override
    	public void laugh() {
    		// TODO Auto-generated method stub
    		System.out.println("person laugh");
    
    	}
    
    }

    package interfaceextends;
    
    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		// 一个接口可以同时继承两个接口
    		Person person = new Person();
    		person.laugh();
    		person.speak();
    
    	}
    
    }

    运行程序,没有报错,输出:

    person laugh
    person speak


    展开全文
  • java中类实现接口用implements关键词,接口继承接口extends关键词,那么可以用implements吗
  • classB Extends classAjava接口可以多继承。Interface3 Extends Interface0, Interface1, interface……不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?但接口...

    接口是常量值和方法定义的集合。接口是一种特殊的抽象类。

    java类是单继承的。classB Extends classA

    java接口可以多继承。Interface3 Extends Interface0, Interface1, interface……

    不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?

    但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。

    自我看法

    因为类如果可以多继承,实例化时,如果要跳用父类的方法,如果两个一样,

    根本就不知道该调用那个父类的方法;

    但是接口就不一样了,因为接口继承多个接口,就算多个接口有相同的方法,

    但是最终实现接口的类只能实现一个方法且@Override一个方法,所以调用时就

    不会有问题了

    注意:

    1)一个类如果实现了一个借口,则要实现该接口的所有方法。

    2)方法的名字、返回类型、参数必须与接口中完全一致。如果方法的返回类型不是void,则方法体必须至少有一条return语句。

    3)因为接口的方法默认是public类型的,所以在实现的时候一定要用public来修饰(否则默认为protected类型,缩小了方法的使用范围)。

    分享到:

    18e900b8666ce6f233d25ec02f95ee59.png

    72dd548719f0ace4d5f9bca64e1d7715.png

    2012-05-06 11:32

    浏览 23653

    评论

    展开全文
  • 首先看下面这一段代码:...}interface a1 extends a{void b();}interface a2 extends a{void b();}interface a12 extends a1,a2{void b();}public class Main {public static void main(String args[]){}}上面a...

    首先看下面这一段代码:

    interface a{

    void b();

    }

    interface a1 extends a{

    void b();

    }

    interface a2 extends a{

    void b();

    }

    interface a12 extends a1,a2{

    void b();

    }

    public class Main {

    public static void main(String args[]){

    }

    }

    上面a1和a2都继承了接口a,都获得了b方法的定义。然后a12又多重继承了a1和a2。同样,a12获得了b方法的定义。

    但是假设上述代码中的接口都换成类,假如a12没有对b方法作覆盖,那么再假如a1对b方法作了实现,然后a2也对b方法作了实现,那么a12继承的b方法究竟来自于哪个类里的b方法呢?这里似乎舍弃掉哪个方法都不太好。

    所以类的多继承会出现矛盾。

    接口由于都没有具体实现,所以不会出现这个矛盾。

    有人可能会问,那既然没有实现就可以多继承,那么抽象类可以不可以多继承呢?

    答案是不可以的!

    具体为什么不可以,请继续关注我的博客~

    好了,还是现在就说吧,抽象类跟普通类在多继承这块我觉得是差不多的。

    看下面代码:

    abstract class a{

    abstract void b();

    void c(){

    System.out.println("c()");

    }

    abstract void d();

    abstract void e();

    abstract void f();

    }

    abstract class b extends a{

    abstract void b();

    abstract void d();

    abstract void e();

    void f(){

    System.out.println("f()");

    }

    /*abstract void f();*/

    }

    abstract class c extends a{

    abstract void b();

    abstract void d();

    abstract void e();

    abstract void f();

    }

    public class Main {

    public static void main(String args[]){

    }

    }

    假设我们有个类d要继承b和c,而且还不重写f方法,那么问题来了,类d里面的f方法是用谁的f方法呢?你可能会觉得,类b都实现了,当然是类b里已经实现的f方法啊?

    你这样认为的话,那java编译器还认为类c里面的抽象方法f也是一个值得保留的特性呢,这时候矛盾就来了...

    但是用接口的话,就很单一了,所有的接口都没有实现~所以随便从哪个接口里来继承并覆盖这个方法都无所谓~

    以上所述是小编给大家介绍的java为什么不允许类多重继承却允许接口多重继承详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!

    已被981人点赞

    展开全文
  • Java接口可以继承接口么? 接口当然可以继承接口,但要用extends关键字 interface person { int age = 5; //default is final void eat(); void laugh(); } interface student extends person { @Override ...
  • 展开全部接口是常量32313133353236313431303231363533e58685e5aeb...classB Extends classAjava接口可以多继承。Interface3 Extends Interface0, Interface1, interface……不允许类多重继承的主要原因...
  • java 接口可以多继承

    万次阅读 多人点赞 2015-06-16 10:08:28
    接口是常量值和方法定义的集合。...java接口可以多继承。Interface3 Extends Interface0, Interface1, interface…… 以下是spring ApplicationContext 接口的代码,同时继承了多个接口 public interface Appli...
  • java接口可以继承多个接口   接口是常量值和方法定义的集合。接口是一种特殊的抽象类。 java类是单继承的。classB Extends classA java接口可以多继承。Interface3 Extends Interface0, Interface1, ...
  • java接口可以多继承。Interface3 Extends Interface0, Interface1, interface……   不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢? 但接口不存在这
  • 大家都知道,要实现Java多线程的两种方式 a:是直接继承Thread类,b:是实现Runnable接口。先上代码:a:是直接继承Thread类,public class ThreadDemo1 extends Thread {public void run(){//Thread.currentThread...
  • Java implements和extends的区别 implements 关键字implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。实现一个接口,必须实现接口中的所有方法。...接口可以被多重实现(i...
  • java接口可以多继承。Interface3 Extends Interface0, Interface1, interface…… 不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢? 但接口不存在这样的问...
  • java接口可以多继承

    2016-05-06 09:30:12
    今天在学习AsyncTask源码的时候,偶然发现原来java中的Interface是可以多继承的,有图有真相,以下是AsyncTask源码中的片段: 以下是http://blog.sina.com.cn/s/blog_67d247c40100tr39.html博主的说法:接口是常量...
  • java implement和extends

    千次阅读 2016-03-14 14:56:23
    类只能继承一个,接口可以实现多个。 extends继承父类的时候可以重写父类的方法,也可以调用父类的非私有方法;implements实现接口,必须实现接口的所有方法。二、extends后面跟的是类,表示继承关系; 如public ...
  • java中的extends与implement 1、extends是继承,被final与abstract修饰的类不能被继承,可以使用父类的...接口可以被多重实现,也可以被多继承。implements可以实现多个接口,通过继承父类的属性,实现接口中的功能。 j
  • java 接口

    2019-05-08 13:41:00
    Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能) 接口声明:interface 定义接口...
  • java接口可以继承多个接口 public interface Editable extends CharSequence, GetChars, Spannable, Appendable {。。。} 接口是常量值和方法定义的集合。接口是一种特殊的抽象类。 java类是单继承的。classB ...
  • 简单说:1.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,2.JAVA中不支持多重继承,但是可以接口来实现,这样就要用到implements,3.继承只能继承一个类,但implements可以...
  • 接口Java中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的成员没有执行体,是由全局常量和公共的抽象方法所组成。定义接口Java 接口的定义方式与类基本相同,不过接口定义使用的关键字是 ...
  • classB Extends classAjava接口可以多继承。Interface3 Extends Interface0, Interface1, interface……不允许类多重继承的主要原因是,如果A同时继承B和C,而B和C同时有一个D方法,A如何决定该继承那一个呢?但接口...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,396
精华内容 1,758
关键字:

java接口可以extends

java 订阅