自学内容网 自学内容网

抽象类和接口以及异常处理

抽象类

抽象类与抽象方法的使用

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);
}
}


原文地址:https://blog.csdn.net/m0_63233901/article/details/142725332

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!