抽象类
抽象类与抽象方法的使用
1.抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类
2.如果子类没有实现父类的所有抽象方法,子类必须被定义为抽象类
3.没有抽象构造方法,也没有抽象静态方法
4.抽象类中可以有非抽象的构造方法,创建子类的实例时可能调用
接口
public interface MyInterface {
public void foo();
//其他方法
}
接口是一种约定
接口是一种能力
接口的特性
1.接口不可以被实例化
2.实现类必须实现接口的所有方法
3.实现类可以实现多个接口implements、多个接口使用逗号隔开
4. 接口中的变量都是静态常量(public static final)
定义接口
使用interface关键字
package com.hz.ch06.Test05;
public interface Computer {
public abstract int computer(int n ,int m);
}
接口使用
使用implements关键字,多个接口用逗号隔开
package com.hz.ch06.Test05;
public class Jia implements Computer{
@Override
public int computer(int n, int m) {
// TODO 自动生成的方法存根
return n+m;
}
}
异常处理
try{
可能会报错的代码
}catch(Exception e) {
异常处理代码
}
try{
可能会报错的代码
}catch(Exception e) {
异常处理代码
}finally{
不管程序是否报错都执行
}
抛出异常
使用关键字throws
package com.hz.ch07;
public class Student {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) throws Exception
{
if(age>=1&&age<=100) {
this.age = age;
}
else {
throw new Exception("年龄必须在1-100之间");
}
}
public void show() {
System.out.println(getAge());
}
}
package com.hz.ch07;
public class Test {
public static void main(String[] args) {
Student a = new Student();
try {
a.setAge(110);
a.show();
} catch (Exception e) {
System.err.println("An exception occurred: " + e.getMessage());
e.printStackTrace();
}
}
}
声明异常
制造异常,使用关键字 throw
throw new Ch06Exception("没有A4纸了");
自定义异常
public class Ch06Exception extends RuntimeException {
public Ch06Exception(String message) {
super(message);
}
}