抽象
概念:
抽象类就是不能创建对象的类。
使用abstract关键字修饰一个类,这个类就是抽象类。
生活中有很多东西都是抽象的比如:工具,形状,人等…
它们都没有具体的表现形式,所以理论上是不能创建对象的一个类。所以我们把它们归类于抽象类。
抽象类无法被用于创建对象。
抽象方法就是没有方法体的方法。
使用abstract关键字修饰一个方法,这个类就是抽象方法。
抽象方法是没有方法体的,抽象方法只能写到抽象类里面。
public abstract void test();
继承抽象类子类必须重写抽象类中的抽象方法(如果有)(子类不是抽象类)
疑问?
抽象方法只能存在于抽象类中。为什么?
因为抽象方法没有方法体,如果创建该类的对象,调用该抽象方法没有代码可以执行。
一个抽象类可以没有抽象方法
为什么要有抽象方法?
是为了在多态的情况下,调用方法不会出错,而能够通过编译。
================================================================
访问修饰词
private 私有,只有当前类中可以访问
[default] 默认的,同一个包可以访问
protected 受保护的,子类可以访问
public 公有的,所有类中都可以访问
================================================================
final关键字
概念:
1.修饰一个变量,这个变量是一个常量。
2.修饰一个类,这个类不能被继承。
3.修饰一个方法,这个方法不能被重写。
疑问:
能不能有一个用final和abstract同时修饰的类?
不能,因为abstract不能用于创建对象,final不能被继承,所以这个类就毫无意义
================================================================
谢谢大家!