A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李小锋 中级黑马   /  2012-11-25 19:49  /  1744 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李小锋 于 2012-11-25 21:55 编辑

   java中的接口与继承具体怎么使用?可以用interface C extends B,A吗?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 鼓励一个,问问题最好贴出代码说明下.

查看全部评分

6 个回复

倒序浏览
interface 定义接口 ,implement实现接口, extends 继承。
interface Demo
{
  void method();
}//定义接口
class A implement Demo
{
}//实现接口。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
java中的接口与继承具体怎么使用?可以用interface C extends B,A吗?
不可以

你要明白几点:
1、extends 是继承,我们说一个子类继承一个父类;
2、implements 是实现,我们说一个类实现一个或多个接口;
3、继承具有单一性,也就是说一个子类只能继承一个父类(这是一个问题);
4、但是一个类可以实现多个接口(这就是解决上面问题的方法);
5、接口成员的特点:
接口中的变量是公有的全局静态常量,如:public static final int a = 2  (public static final可以省略);
接口中的方法是共有抽象方法,如:public abstract void function()  (public abstract 可以省略);

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
接口间应该是说实现。接口可以多实现。这是对类不能多继承的改善。接口就是方法特征的一个集合。是向上抽取得来的。而继承是一种关系。是让类之间产生关系。子类继承父类,让子类也具有父类的特性。提高复用性。
接口是不可以创建对象的。因为有抽象方法,需要被子类实现。子类对接口中的抽象方法全部覆盖后,子类才可以实例化。否则子类也是一个抽象类。这是接口的使用。
对于继承,你想让子类也具备父类的特性时使用。这样代码会比较简洁。
由于可以多实现。所以我认为那写法应该是可以的。不知道正确否。能肯定的帮确认下。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
java可以多实现。
java中的接口可以多继承。

interface A
{
        public abstract void show();
}

interface B
{
        public abstract void show();
}

interface D extends A,B
{

}

class C implements A,B
{
        public void show(){}
}

class InterfaceDemo3
{
        public static void main(String[] args)
        {
               
        }
}
你运行一下、结果编译会通过、说明上面的情况是可以的
再者、继承只能单继承、不可以多继承,但可以多层继承,比如:
java只支持单继承,不支持多继承。
        class A
        {
                public void show()
                {
                        Sysetm.out.println("A");
                }
        }
        class B
        {
                public void show()
                {
                        Sysetm.out.println("B");
                }
        }

        //假如可以多继承,那么就会造成调用不确定问题。也就是产生了安全隐患。
        //所以java不能多继承。
        class C extends A,B{}

java支持多重(层)继承
        class A {}
        class B extends A{}
        class C extends B{}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
大家的答案很详细,谢谢大家咯
回复 使用道具 举报
1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。
extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用
2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了
比如
class A extends B implements C,D,E


===========================================================
implements
学了好久,今天终于明白了implements,其实很简单,看下面几个例子就ok啦~~
接口的一些概念
public inerface Runner
{
  int ID = 1;
  void run ();
}



interface Animal extends Runner
{
  void breathe ();
}


class Fish implements Animal
{
  public void run ()
{
   System.out.println("fish is swimming");
}


public void breather()
{
   System.out.println("fish is bubbing");   
}
}

abstract LandAnimal implements Animal
{

  public void breather ()
{
   System.out.println("LandAnimal is breathing");
}
}

class Student extends Person implements Runner
{
   ......
   public void run ()
    {
         System.out.println("the student is running");
    }
   ......
}





interface Flyer
{
  void fly ();
}

class Bird implements Runner , Flyer
{
  public void run ()
   {
       System.out.println("the bird is running");
   }
  public void fly ()
   {
       System.out.println("the bird is flying");
   }
}




class TestFish
{
  public static void main (String args[])
   {
      Fish f = new Fish();
      int j = 0;
      j = Runner.ID;
      j = f.ID;
   }


}
接口实现的注意点:


a.实现一个接口就是要实现该接口的所有的方法(抽象类除外)。
b.接口中的方法都是抽象的。
c.多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马