1. 抽象类
1.1 什么是抽象类
我的理解就是,当一个类无法明确表示一个对象就是抽象类。
1.2 抽象类和抽象方法的语法
在类和方法的访问限定修饰符的前后加入abstract关键字。
抽象类
public abstract class 类名
abstract public class 类名
抽象方法
public abstract 返回值 方法名();
abstract public 返回值 方法名();
1.3 抽象类特性
1 抽象类不能实例化对象。
2 抽象类可以包含普通方法,而普通类不能包含抽象方法。
3 抽象方法不能是 private 的。
4 抽象方法不能被final和static修饰,因为抽象方法要被子类重写。
5 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用 abstract 修饰。
2. 接口
2.1 接口的语法
接口的语法和类的语法基本相同,只需把class变成interface
public interface 接口名称
2.2 接口的使用
接口不能直接使用,必须通过一个类去重写接口的抽象方法,才能使用。
2.3接口的特性
1. 接口中的成员变量默认是public staic final修饰的。
2. 接口中的成员方法默认是public abstract修饰的。
3. 在JDK8之后,被defalut修饰的成员方法可以在接口内实现。
4. 被staic修饰的成员方法可以在接口内实现。
5. 接口不能进行实例化。
6. 类和接口之间,用implements来实现接口,同时必须重写接口的抽象方法。
7. 接口中不能有静态代码块和构造方法。
8. 接口编译完成后字节码文件的后缀格式也是.class。
9. 重写接口中方法时,不能使用默认的访问权限。
2.4 多接口和接口之间的继承
多接口
接口间的继承
3. Object类
Object是所有类的父类,所有类默认继承Object类。
4. 内部类
静态内部类
1 静态内部类的书写格式
public staic 类名
2 静态内部类的实例化
3 在静态内部类中不能直接访问外部类非静态成员。
实例内部类
1 实例内部类书写格式
class 类名
2 实例内部类实例化
3 当实例内部类的成员变量和外部类相同时优先访问实例内部类,如果想访问外部类他的格式 外部类.this.成员变量。
局部内部类
定义在方法内的类,一般很少使用。
匿名内部类
语法
new 接口名