北方站长站
客服热线:0632-5117766

接口和抽象类的定义方式举例说明

[2007-01-19 00:00:00] 作者:Northz.com 来源:北方站长站

Tags:举例 说明 方式 定义 抽象 接口 throwsIOException if

  

public interface ObjectConstants{PCi北方站长站
public static final String SPACE = new String(" ");PCi北方站长站
public static final char FORMFEED = '/f';PCi北方站长站
}PCi北方站长站
2.    接口中只定义可供实现的抽象方法PCi北方站长站
EventListener.javaPCi北方站长站
    public interface EventListener {PCi北方站长站
    public void handleEvent(Event evt);PCi北方站长站
    }PCi北方站长站
Runnable.javaPCi北方站长站
package java.lang;PCi北方站长站
    public interface Runnable {   PCi北方站长站
    public abstract void run();PCi北方站长站
    }PCi北方站长站
3.    还有一种方式是上述两种方式的组合,如非必要一般会将这样一个接口定义拆分成两个接口定义PCi北方站长站
抽象类的定义PCi北方站长站
1.    如果一个类包含一个接口但是不完全实现接口定义的方法,那么该类必须定义成abstract型PCi北方站长站
例如InputStream.java类的定义方式:PCi北方站长站
package java.io;PCi北方站长站
public abstract class InputStream implements Closeable {PCi北方站长站
    // SKIP_BUFFER_SIZE is used to determine the size of skipBufferPCi北方站长站
    private static final int SKIP_BUFFER_SIZE = 2048;PCi北方站长站
    // skipBuffer is initialized in skip(long), if needed.PCi北方站长站
    private static byte[] skipBuffer;   PCi北方站长站
    public abstract int read() throws IOException;PCi北方站长站
   PCi北方站长站
    public int read(byte b[]) throws IOException {PCi北方站长站
    return read(b, 0, b.length);PCi北方站长站
    }   PCi北方站长站
    public int read(byte b[], int off, int len) throws IOException {PCi北方站长站
    if (b == null) {PCi北方站长站
        throw new NullPointerException();PCi北方站长站
    } else if ((off < 0) || (off > b.length) || (len < 0) ||PCi北方站长站
           ((off + len) > b.length) || ((off + len) < 0)) {PCi北方站长站
        throw new IndexOutOfBoundsException();PCi北方站长站
    } else if (len == 0) {PCi北方站长站
        return 0;PCi北方站长站
    }PCi北方站长站
    int c = read();PCi北方站长站
    if (c == -1) {PCi北方站长站
        return -1;PCi北方站长站
    }PCi北方站长站
    b[off] = (byte)c;PCi北方站长站
    int i = 1;PCi北方站长站
    try {PCi北方站长站
        for (; i < len ; i++) {PCi北方站长站
        c = read();PCi北方站长站
        if (c == -1) {PCi北方站长站
            break;PCi北方站长站
        }PCi北方站长站
        if (b != null) {PCi北方站长站
            b[off + i] = (byte)c;PCi北方站长站
        }PCi北方站长站
        }PCi北方站长站
    } catch (IOException ee) {PCi北方站长站
    }PCi北方站长站
    return i;PCi北方站长站
    }PCi北方站长站
 public long skip(long n) throws IOException {PCi北方站长站
    long remaining = n;PCi北方站长站
    int nr;PCi北方站长站
    if (skipBuffer == null)PCi北方站长站
        skipBuffer = new byte[SKIP_BUFFER_SIZE];PCi北方站长站
    byte[] localSkipBuffer = skipBuffer;        PCi北方站长站
    if (n <= 0) {PCi北方站长站
        return 0;PCi北方站长站
    }PCi北方站长站
    while (remaining > 0) {PCi北方站长站
        nr = read(localSkipBuffer, 0,PCi北方站长站
              (int) Math.min(SKIP_BUFFER_SIZE, remaining));PCi北方站长站
        if (nr < 0) {PCi北方站长站
        break;PCi北方站长站
        }PCi北方站长站
   remaining -= nr;PCi北方站长站
    }    PCi北方站长站
    return n - remaining;PCi北方站长站
    } PCi北方站长站
    public int available() throws IOException {PCi北方站长站
    return 0;PCi北方站长站
    }   PCi北方站长站
    public void close() throws IOException {}  PCi北方站长站
    public synchronized void mark(int readlimit) {}    PCi北方站长站
    public synchronized void reset() throws IOException {PCi北方站长站
    throw new IOException("mark/reset not supported");PCi北方站长站
    }PCi北方站长站
    public boolean markSupported() {PCi北方站长站
    return false;PCi北方站长站
    }PCi北方站长站
}PCi北方站长站
2.    抽象类的方法体中只定义抽象的方法,例如AbstractMethodError.javaPCi北方站长站
    package java.lang;PCi北方站长站
    public class AbstractMethodError extends IncompatibleClassChangeError {PCi北方站长站
    public AbstractMethodError() {PCi北方站长站
    super();}PCi北方站长站
    public AbstractMethodError(String s) {PCi北方站长站
    super(s); }PCi北方站长站
}PCi北方站长站

 

News

 

info

 

down

出售手机裁听器,手机跟踪定位系统    企业网站,网城,购物网,都市导购,校园网    网上书店系统    上海电信机房服务器托管,双线主机托管    美女图片馆    15G 高清晰图片资源 无水印    室内装潢材料新产品杰威尔艺术漆    收一万ip的美女图片    大量收购个人网址导航网站    出售网址站PR=4alexa=119,764    

下一篇链接:Liferay中整合tinyMCE详解

上一篇链接:JDK6.0的新特性:轻量级Http Server

评论】 【打印】 【加入收藏】 【关闭→论坛 →博客 →数据中心

 共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面