使用匿名类:
interface Student { public void speak(); } calss Teacher { public void call(Student stu) { stu.speak(); } } public class Test { Teacher teacher = new Teacher(); teacher.call(new Student { public void speak() { System.out.println("老师好"); } }); }
我们可以继承Exception类,来定义自己的异常类,然后规定哪些方法产生这样的异常。一个方法在声明时通过throws关键字抛出异常,并在该方法的方法体中具体给出产生一尺长的操作,即用相应 的异常类创建对象。这将导致该方法结束执行并抛出(throw)所创建的异常对象。必须在try-catch块中调用抛异常的方法。请看下面实例
求一个数的平方根,自定义一个异常类,如果所求的数是负数则抛出MyException异常。
class MyException extends Exception { private message; MyException(int n) { this.message = n+"不是正数"; } public String getMessage() { return Message; } } class Sqrt { public void f(int n) throws MyException { if(n<0) { MyException e = new MyException(n); throw(e); //抛出异常结束方法的执行 } else{ double num = Math.sqrt(n); System.out.println("n的平方根是:"+num); } } } public calss Test { public static void main(String[] args) { Sqrt s = new Sqrt(); try{ s.f(49); s.f(-49); }catch(MyException e){ System.out.println(e.getMessage()); } } }