1>什么是抽象函数?
只有函数的定义,没有函数体的函数被称为抽象函数。
abstract void fun();
2>什么是抽象类?
使用 abstract
定义的类被称之为抽象类,通常作为基类。
1、抽象类不能生成对象,也就是说不能被实例化。
2、如果一个类中包含抽象函数,那么这个类必须是抽象类。
3、如果一个类中没有抽象函数,那么这个类也可以被声明为抽象类。
4、虽然抽象类不能生成对象,但是它可以拥有构造函数。
5、抽象类的中方法:
A:抽象方法 强制要求子类做的事情。
B:非抽象方法 子类继承的事情,提高代码的复用性。
abstract class Fun
{
Fun();
abstract void fun();
}
3>与abstract冲突的关键字
- static:无意义,因为通过类名去调用一个没有函数体的函数毫无意义。
- private:冲突,使用private定义方法后,变为私有,子类无法重写方法。
- final:冲突,因为使用final修饰的方法无法重写。
4>抽象类存在的意义
联想现实生活中,打印机就属于一个抽象类,它拥有很多功能,但不同牌子的打印机在打印这个功能上存在差异,这个时候使用抽象类和抽象函数就可以很好的解决这一问题。
avstract class Printer
{
abstract void print();
void open()
{
System.out.println("open");
}
void close()
{
System.out.println("close");
}
}
class HpPrinter extends Printer
{
void print()
{
System.out.println("Print!");
}
}