当前位置: 首页 > article >正文

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

抽象类

抽象类与抽象方法的使用

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


http://www.kler.cn/news/334576.html

相关文章:

  • 【平方差 / C】
  • Python Flask 和 Django 的区别与适用场景
  • 论文翻译 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust
  • android + tflite 分类APP开发-2
  • 【Spring Boot React】Spring Boot和React教程 完整版
  • OpenGL ES 索引缓冲区(4)
  • picgo + typora + gitee图床
  • vscode+stfp插件,实现远程自动同步文件代码
  • D - Laser Marking
  • 【代码模板】统计数据集的均值和标准差
  • C++面试速通宝典——16
  • Spring Boot大学生就业招聘系统的设计与优化
  • 9.29 LeetCode 3304、3300、3301
  • Kubernetes云原生存储解决方案之 Rook Ceph实践探究
  • 【可答疑】基于51单片机的智能台灯(含仿真、代码、报告、演示视频等)
  • 用Spring Boot搭建IT交流与学习平台
  • 机器学习系列篇章0 --- 人工智能机器学习相关概念梳理
  • 【复习】CSS中的选择器
  • 定时器TIM输出比较及其应用
  • 幂等性接口实现