您的位置:首页 > 其它

抽象类接口总结

2017-03-19 20:20 190 查看
对于抽象类、接口、多态这三个看似很基础知识,我每次面试都会遇到,每次都让我举例,说明什么情况下用抽象类、接口,多态,每次答得的不尽人意,最近把这些总结了下,今天先总结下抽象类和接口的基础知识点,明天给出他们的例子。





抽象类和接口基础知识点总结:
抽象类——abstract:
 1.抽象类的解释:
       当多个类中出现相同功能的函数,但功能主体不同,这时可以向上抽取,只抽取功能定义,而不抽取功能主体;
       一个类中有抽象类时,这个方法用abstract修饰,同时这个类也是抽象类,用abstract修饰
2.抽象类的特点:
    1.抽象方法一定在抽象类中;
    2.抽象方法和抽象类都必须用abstract修饰;
    3.抽象类不可以用new来创造对象,因为建立对象无意义;
    4.抽象方法要想使用,必须由子类复写其所有的抽象方法后,建立了对象调用;如果子类只是复写了部分抽象方法,则子类还是一个抽象类。
3.抽象类和一般类没有什么不同,该怎么描述事物就怎么描述,只不过,该事物出现了一些看不懂的功能,这些不确定的部分,也是该事物的功能,需要明确出来,单独无法定义出来,需要根据子类特有的特性去定义。
 4.抽象类比一般类多了抽了函数,就是在抽象类中可以定义抽象方法和非抽象方法;
 5.抽象类中可以不定义抽象方法,这样仅仅是不让创建对象;
接口(interface):
当抽象类中的方法都是抽象的,那么该类可以通过接口形式表示;
  1.接口的格式特点:
      1.接口常见的定义:常量,抽象方法;
       2.接口中的成员都有固定的修饰符;接口中的成员都是public的,即使常量没有用修饰符修饰,jvm也会认为接口中的变量是这些修饰符修饰
4000
的。

            常量public static final

            方法public abstract
                eg:interface inter{
                               public static finalint a;<=>int a;
                               public void show();
                  }
          3.接口有抽象方法,所以不能初始化;
   2.接口与类的连接用implement;
          eg:class one implement inter{}
   3.接口不能实例化,子类只有将接口里面所有的方法都实现后,才能用子类去初始化
   4.当子类继承了接口以后,接口里面的成员变量可以直接被这个子类的类名称调用,子类名称.成员变量名称(因为static)
           因为接口里面的成员变量都是publicstatic final类型的;
  5.接口可以多实现,是对不支持多继承的转换;多实现是可以同时继承多个接口!!!!
       为什么:因为继承多个父类,父类方法有重复,会造成奇异;而接口并没有实现;需要子类去实现,不会出现这个歧义!

    6.接口与接口之间也有继承关系,可以实现多继承;
抽象类和接口的异同点:
 
相同点:
       都是不断向上抽取而来的。




不同点:

       1,抽象类需要被继承,而且只能单继承。

            接口需要被实现,而且可以多实现。

       2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽             象方法。

          接口中只能定义抽象方法,必须由子类去实现。

       3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。

            接口的实现是like a 关系,在定义体系额外功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: