抽象类
不能被实例化。但是构造函数是有的。
作用:用来描述一种应该是具备某种功能和特征,具体去完成这些功能的行为由子类重写方法去完成的类,不需要去实现自己的方法。
抽象方法:用于封装父类中的功能,不需要实现方法,只需要写上功能即可。
抽象定义:abstract
如果一个类在继承父类(抽象类)的时候,没有实现父类中的所有抽象方法,那么这个子类还是抽象类
接口**
接口:是抽象类上一级的封装存在。
接口中没有构造方法。
接口可以理解为是一个思想,具体的实现不用管,由实现这个接口的类来实现。
接口语法:
- 使用interface代替原来的class,其他步骤与类定义相同
- 1.接口中的方法均为公共访问的抽象方法 - jdk7.0之前,之后有所改动
- 2.接口中无法定义普通的成员属性
接口其实是一个特殊的类,在经过jvm编译之后,还是会生成一个.class文件
接口中成员的特点:
1.接口中可以定义变量,但是这个变量需要有固定的修饰符public static final 所以接口中变量称为常量-其值不变
2.接口中可以定义方法,但是方法也有固定的修饰符public abstract
3.接口中不可以创建对象
4.子类必须盖掉接口中所有的抽象方法后,子类才可以实例化,否则这个子类就是一个抽象类
接口中的注意点:
1.Java中的类只支持单继承
2Java中的接口支持多继承,一个类继承多个接口
3.接口也支持多层继承
4.java中一个普通类同时继承一个父类,以及多个接口,多个接口之间用逗号,隔开
**
扩展
一种常用的命名规则:
4 = for dom4j = dom for java
2 = to
类名:MyClass4Interface
方法的重载与重写:
重载看引用;重写看对象
方法的重载在编译期绑定参数 - 编译期就是jvm检查java代码语法的时候(当ctrl+s保存时)
方法的重写是在运行期执行的 - 因为对象是在运行期才出现的!**
