黑马程序员技术交流社区

标题: 继承问题 [打印本页]

作者: 李京    时间: 2012-9-8 20:17
标题: 继承问题
本帖最后由 李京 于 2012-9-8 22:45 编辑

为什么有时候要实现了接口或者父类的方法需要implements 、extends 而有些接口可以直接构造对象,比如,Thread 在使用时候需要 classX extends Thread ,Runnable 也是需要继承,而List接口,我可以直接定义自己的Class X,然后就是用List list= new Arraylist自己定义的Class不需要继承关键字,是不是因为构造的问题
作者: 杨卫腾    时间: 2012-9-8 21:00
    为什么有时候要实现了接口或者父类的方法需要implements 、extends
  
     因为接口中的方法是向上抽取而来的,里边没有方法体,实现接口后可以增加程序的扩展性。至于继承extends 就是要从父类中获取已有的方法,
   提高代码的复用性、扩展性。

   Thread 在使用时候需要 classX extends Thread ,Runnable 也是需要继承,而List接口,我可以直接定义自己的Class X,
   然后就是用List list= new Arraylist自己定义的Class不需要继承关键字,是不是因为构造的问题。

   
   楼主, List 是个接口,(用List list= new Arraylist) 其实你是用到了多态,接口类对象引用指向了子类对象,
   ArrayList 是List的实现类,你创建对象这当然是无可厚非的。比如:
   
interface USB
{
        public void open();
        public void running();
}

class Mouse implements USB
{
        private String bandon;
       
        Mouse(String bandon)
        {
                this.bandon = bandon;       
                System.out.println("bandon:"+bandon);
        }       
        public void open()
        {
                System.out.println("mouse open");
        }

        public void running()
        {
                System.out.println("mouse running");
        }
}

class  BookPC
{
        public static void main(String[] args)
        {
                USB  u = new Mouse("罗杰");
                o.running();
        }
}

作者: 杨震    时间: 2012-9-8 21:08
接口是可以声明引用的,但不能建对象,所以可以 Runnable x;     List  x;
但是不能创建对象,所以不有new List, new Runnable


作者: 吴通    时间: 2012-9-8 21:11
楼主:
首先我们查阅API发现List集合没有构造函数,所以List是不能创建对象的,
并且List中也没有静态的方法,所以List方法要通过他的实现类来实现,
发现List下面有很多实现类,像ArrayList  LinkedList等,发现这些类有构造函数,
所以可以通过创建对象来调用里面的方法。
所以List相当于一类类,使用的时候要知道具体需要它里面的哪个实现类,
通过实现类再创建对象,调用方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2