```**抽象类**
abstract修饰的方法是抽象方法,一个类只要有一个抽象方法,这个类必须是抽象类;
**抽象类好处:**
目的是为了让子类重写,所以这个方法体就没必要写方法体(代码);抽象类没有方法体,需要用分号表示结束;如:( public abstract double computePay();)
记住:1.一个抽象类中的抽象方法,子类必须重写
2.抽象类中可以有抽象方法,也可以没有
3.抽象类中可以有具体方法
4.抽象类不能被实例化,它的类是为了被继承
5.只有抽象的方法和抽象的类,没有抽象字段
6.抽象类可以被另一个抽象类继承,那么这个子的抽象类可以不重写父 类的抽象方法
7.抽象类不能被实例化,却有构造方法,抽象类的构造方法只是为了被子类调用(只有抽象类的非抽象子类可以创建对象)
8.final和abstract是不可以连用的,
9.如果一个类不想被实例化,可以讲这个类写成抽象类(方法体:大括号里面的内容)
![static final abstract关键字的用法](https://img-blog.csdnimg.cn/20190321213437533.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhaWdhaWthaTEyMw==,size_16,color_FFFFFF,t_70)
**接口:**
定义很多标准的东西;一对的协议,规则(很多抽象方法的封装)
**接口重点:**
1.接口和类是同级关系,类通过class修饰,接口通过interface修饰
2.接口中的方法一般都是公共的抽象方法;
3.接口中的属性一般都是常量
4.接口可以理解为一个特殊的抽象类(一般不写具体的方法)
5.接口不能被实例化,接口没有构造方法
6.一个类可以实现多个接口
7.接口是可以继承另一个接口的(public class AAA extends BBB)
8.一个类可以同时继承父类并implements 接口1,接口2........
9.类之间是单继承的,但接口之间是可以多继承的
10.接口中一般都是抽象的
特殊情况说明:1)如果接口中有static修饰,该方法需要方法体 .
2)default修饰的,该方法必须有方法体.
在一个接口中声明方法时,若没有声明访问权限,默认也是public,若没其他修饰默认也是abstract;声明属性时,若没有声明访问权限和静态常量,默认也是public static final
包:访问权限
![包的访问权限](https://img-blog.csdnimg.cn/20190321213605985.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhaWdhaWthaTEyMw==,size_16,color_FFFFFF,t_70)
震惊!java的抽象类,接口和包居然是这种情况
最新推荐文章于 2021-12-30 09:35:08 发布