您的位置:首页 > 编程语言 > Java开发

Java基础知识学习(五)

2015-10-16 14:18 495 查看
高级特性:接口

接口(Interface)

1) 接口中只能定义抽象方法,默认为 public abstract 的,变量可以是static的

2) 接口中没有构造方法

3) 一个接口不实现另一个接口,但可以继承多个其他接口,一个类只能继承一个父类,但却可以实现多个接口。

实现接口的格式如下:

interface SataHdd{
//
}

interface fixHdd{
//
}

class SeagateHdd implements SataHdd, fixHdd{
//
}


抽象类和接口的主要区别。

1) 抽象类可以为部分方法提供实现,避免了在子类中重复实现这些方法,提高了代码的可重用性,这是抽象类的优势;而接口中只能包含抽象方法,不能包含任何实现。

2) 一个类只能继承一个直接的父类(可能是抽象类),但一个类可以实现多个接口,这个就是接口的优势。

行为模型应该总是通过接口而不是抽象类定义,所以通常是优先选用接口,尽量少用抽象类。

选择抽象类的时候通常是如下情况:需要定义子类的行为,又要为子类提供通用的功能。

泛型

泛型类

class Point<T1, T2>{
T1 x;
T2 y;

// 定义泛型方法
public <T1, T2> void printPoint(T1 x, T2 y){
T1 m = x;
T2 n = y;
System.out.println("This point is:" + m + ", " + n);
}
}


泛型接口

interface Info<T> {
public T getVar();
}
//实现接口
class InfoImp<T> implements Info<T> {
public T getVar() {
//
}
}


限制泛型的可用类型

public <T extends Number> T getMax(T array[]){
//
}


Java异常处理

Java异常处理通过5个关键字控制:try、catch、throw、throws和 finally。

常见的try catch

try
{

}
catch(Exception e)
{
throw e;
}
finally
{

}


throws子句

一个 throws 子句列举了一个方法可能抛出的所有异常类型。这对于除Error或RuntimeException及它们子类以外类型的所有异常是必要的。一个方法可以抛出的所有其他类型的异常必须在throws子句中声明。如果不这样做,将会导致编译错误。

static void throwOne() throws IllegalAccessException {
System.out.println("Inside throwOne.");
throw new IllegalAccessException("demo");
}


自定义异常

class MyException extends Exception {
private int detail;
MyException(int a) {
detail = a;
}

public String toString() {
return "MyException[" + detail + "]";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: