您的位置:首页 > 职场人生

黑马程序员 接口的一些必须了解的知识

2012-12-16 14:57 357 查看
---------- android培训java培训、java学习型技术博客、期待与您交流! ------------

接口的概述

 

1 接口不是类
在java中定义接口需要使用interface关键字

 

publicinterface 接口名 {}

 

2 与抽象类有点像(特殊的抽象类)
  可以把接口看成是特殊的抽象类。这种抽象类只有抽象方法,没有其他东西!

 

3 接口定义的语法格式
interface 接口名 {

抽象方法1

…..

抽象方法N

}

 

4 接口中的方法都是抽象的
  接口中有抽象方法,但没有实例属性,没有static方法,咱们也不说没有什么了,就是可以有什么:抽象方法!

 

5 接口中没有属性
   接口中没有属性,可以有 public static final的属性,我们应该称之为常量。(需要马上赋值)

  接口中的方法:public abstract的!

 

6 接口不是用来继承的,而是用来现实的
接口不是类!

所以接口不能做为其他类的父类,但类可以去实现接口。

 

7 接口实现的语法格式
public interface MyInter {

    publicabstract void fun();

}

class MyClass implements MyInter {

   publicvoid fun() {}

}

定义了一个 MyInter接口,又定义一个类,名为MyClass,MyClass实现了MyInter接口。

实现接口的关键不是extends,而是implements。

接口的理解

 

1 对象的访问接口
一个接口,其实就是一组方法定义的集合。

当一个类实现了某个接口后,那么这个类的对象就具有了这个接口中所有的方法。

对使用者来说,这时就可以调用接口中的方法了。

 

2 继承可以让子类拥有父类的接口
继承可以让子类拥有父类的接口,你可以向子类对象施加所有父类的操作!可以调用子类对象的所有父类中的方法。

你也可以去调用某个接口实现类中接口定义的方法。

 

3 单继承的弊端
我们知道,java中是没有多继承的,但多继承也有他的好处。

Java为了添加多继承的好处,去除多继承的坏处:使用单继承,但添加了接口的概念。

用接口来弥补单继承的缺陷。

 

4 给类添加附加功能
  接口可以是一个类的附加功能,附加功能可以是多个。即一个类可以实现多个接口。

 

5 3G手机是手机的子类,而且实现了MP3、USB等接口
  把继承和接口分开,其中继承是一个类别主线路,而实现的接口是附加功能!

 

接口的特性

l  接口与抽象类相似;

l  接口只能有什么:

Ø  公有抽象方法;

Ø  公有的、静态的、最终的属性,它需要马上赋值;

Ø  嵌套类,还没学!

Ø  接口中的方法可以不写 public以及abstract,默认就是!

Ø  接口中的方法默认是public和abstract,可以不写这些关键字,但不能写与其冲突的关键字;

Ø  接口中的属性默认是public static final的,不打也是!注意,这种属性需要马上赋值!

Ø  不能写与public static final冲突的关键字来修饰属性。

1 一个类只能继承一个父类,但可以实现多个接口
一个类只有一个父类,但可以实现多个接口。

interface MyInter1 {

}

 

interface MyInter2 {

}

 

class MyClass1 {

}

 

class A extends MyClass1 implements MyInter1, MyInter2 {

}

 

 

2 接口不能有实例对象,但可以有接口的引用
接口不能有实例对象,这一点与抽象类相同。

但可以有接口的引用,这一点也与抽象类相同。

我们也可以先把接口理解为特殊的抽象类。

 

3 可以把3G手机当成MP3来用(转型为接口类型)
public class Test {

         public static void main(String[] args) {

                   IPhone ip = new IPhone();

                   Phone p = ip;

                   Mp3 mp3 = ip;

                   Usb usb = ip;

                  

                   p.phone();

                   mp3.mp3();

                   usb.usb();

         }

}

 

interface Mp3 {

         public abstract void mp3();

}

 

interface Usb {

         public abstract void usb();

}

 

class Phone {

         public void phone() {

                   System.out.println("phone");

         }

}

 

class IPhone extends Phone implements Mp3, Usb {

         public void mp3() {

                   System.out.println("mp3");

         }

        

         public void usb() {

                   System.out.println("usb");

         }

}

 

接口可以用来创建引用!

但接口不能创建实例对象。

可能使用接口的引用,指向这个接口的实现类的实体对象!

A a = newB();//其中如果A是一个接口,那么说明B实现了A接口。

抽象类与接口比较
抽象类:

l  可以有属性,可以有方法,什么都能有,一般就是多了抽象方法而已

l  它是半成品,已经做了一半了。

接口:

l  只能有抽象方法,它不是半成品,可以说它还没有开始做呢。

l  它只是对类的要求,只是一个规范!

l  接口比抽象类还要抽象!

是使用抽象类还是使用接口:

如果你的抽象类中不需要已经完成的方法,也不需要属性,这不就是可以改成接口了么?所以能写接口,建议写接口。

如果你想写一个接口,但发现需要在接口中写一些已经完成的方法,或者是可以给这个接口加一些属性,那么还是用抽象类吧!

Java API中存在一些类,最上方是一些接口,而这些接口的实现类都是抽象类,然后这些抽象类还有子类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: