由来
父类中的方法,被他们的子类重写,子类各自的实现都不尽相同,那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类
定义
抽象方法 : 没有方法体的方法,就是加上abstract关键字,然后去掉大括号,直接分号结束。
abstract使用格式:
修饰符 abstract 返回值类型 方法名 (参数列表);
public abstract void run();
抽象类:包含抽象方法的类,在class之前写上abstract即可。
定义格式:abstract class 类名字 {}
public abstract class Animal {
public abstract void run();
}
如何使用抽象类和抽象方法:
1、不能直接直接创建new抽象类对象
2、必须用一个子类来继承抽象父类
3、子类必须覆盖重写抽象父类当中所有的抽象方法
覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后方法体大括号。
4、创建子类对象进行使用
接口
接口是Java语言的一种引用类型,是方法的集合,如果说类的内部封装了成员变量和成员方法,那么接口的内部主要是封装了方法,包含抽象方法(Jdka7及以前),默认方法(jdk8),私有方法(JDK9)
接口的定义,它与定义类方式相似,但是是使用interface关键字,它也会被编译成。.class文件,但一定要民明确它不是类,而是另一种引用数据类型。
引用数据:数组、类、接口
接口的使用,它不能创建对象,但是可以被实现(implement,类似于被继承)。一个实现接口的类(可以是接口的子类),需要实现接口中所有的抽象方法,就可以调用方法了,否则它必须是一个抽象类。
定义格式
public interface 接口名称{
//抽象方法
//默认方法
//静态方法
//私有方法
}
含有抽象方法
使用abstract 关键字修饰,可以省略,没有方法体,该方法提供子类使用