抽象类
抽象方法是一种只需要定义参数和返回类型的方法,抽象方法必须存在于抽象类中,当一个类继承抽象类的时候他必须重写抽象方法。
抽象类被抽象类继承的时候可以不重写抽象方法。
抽象类中可以存在非抽象方法。
abstract class Animal{
abstract void cry();
abstract String getAnimalName();
}
class Dog extends Animal{
void cry() {
System.out.println("汪汪汪");
}
String getAnimalName() {
return "Dog";
}
}
接口
接口中的所有方法都是 "public static"类型的,所有的属性都是 "public static final"类型的,实现接口就需要实现所有的方法,接口可以被接口继承,接口的一大意义是实现多继承关系。
interface Animal{
abstract void cry();
abstract String getAnimalName();
}
class Dog implements Animal{
public void cry() {
System.out.println("汪汪汪");
}
public String getAnimalName() {
return "Dog";
}
}
内部类
内部类可以是定义在一个类内部,也可以是定义在类方法中。
内部类通过在一个类对象中创建另外一个对象来帮助我们完成一些功能。
异常
在某些情况下,程序在语法无错误的情况下会出现一些错误,例如数组下标越界等,这些我们称之为异常。
处理异常包括捕获(在当前对象处理)和抛出(在调用该对象的方法的对象处理)。
捕获使用的是 "try-catch-finally"语句来实现,finally是无论如何都会执行的,可以用于作为”善后处理“,catch可以多重复用,类似else if,但是注意,捕获的异常应该有小到大,否则没有意义!
抛出使用 "throw"和 "throws"来实现,如果我们可以预判到某些异常的出现,便可配合if-else将其抛出,但是抛出了异常应该在上一级处理。
- 有人会认为为什么需要异常,if-else便可以解决。例如输入整数的时候输入了字符串,此时的Java便会报出异常,但是我们是无法通过if-else处理的!
自定义异常是放在不能和其他类放在一个文件里面,里面似乎不能有输出语句,作为一个类也可以在构造函数中写有参构造,重写后的toString()方法意义本以为是getMessage()信息结果发现自己对getMessage()也不是很明白,暂时放在这里以后明白了再做解答。
本文完成于2020年5月28日21:37:11,是对于观看完秦疆老师Java视频的理解和总结。