- 一、static与final
- 二、==与equlas有什么区别?
- 三、多态、继承、封装
- 四、什么是重写?什么是重载?
- 五、Super与this表示什么?
- 六、抽象类
- 七、接口
一、static与final
- Static可以修饰内部类、方法、变量、代码块
- Static修饰的类是静态内部类
- Static修饰的方法是静态方法,表示该方法属于当前类的,而不属于某个对象的,静态方法也不能被重写,可以直接使用类名来调用。在static方法中不能使用this或者super关键字。
- Static修饰变量是静态变量或者叫类变量,静态变量被所有实例所共享,不会依赖于对象。静态变量在内存中只有一份拷贝,在JVM加载类的时候,只为静态分配一次内存。
- Static修饰的代码块叫静态代码块,通常用来做程序优化的。静态代码块中的代码在整个类加载的时候只会执行一次。静态代码块可以有多个,如果有多个,按照先后顺序依次执行。
- Final可以修饰类,修饰方法,修饰变量。
- 修饰的类叫最终类。该类不能被继承。
- 修饰的方法不能被重写。
- 修饰的变量叫常量,常量必须初始化,一旦初始化后,常量的值不能发生改变。
- ==可以判断基本数据类型值是否相等,也可以判断两个对象指向的内存地址是否相同,也就是说判断两个对象是否是同一个对象
- Equlas通常用来做字符串比较。
- 多态:是指一类事物有多种形态,比如动物有多种形态,猪、狗、鸡。那么其实多态的前提是继承,比如我们定义了一个animal的类,然后我们想要实现动物的另一种形态——猫,这时我们要创建了一个新的类,而我们不需要更改自己的代码,只需要继承animal类,定义Cat方法就可以了。
- 封装指通过具体功能封装到方法中,比如类就是一个封装体,方法是最基本的封装体。而且封装提高了代码的复用性,隐藏了实现细节,还要对外提供可以访问的方式,便于调用者的使用提高了安全性。
- 对于java类来说只能有一个父类,对于接口来说可以同时继承多个接口
- 重载和重写都是java多态的表现。
- 重载叫override,在同一个类中多态的表现。当一个类中出现了多个相同名称的方法,但参数个数和参数类型不同,方法重载与返回值无关
- 重写叫overwrite,是字符类中多态的表现。当子类出现与父类相同的方法,那么这就是方法重写。方法重写时,子类的返回值必须与父类的一致。如果父类方法抛出一个异常,子类重写的方法抛出的异常类型不能小于父类抛出的异常类型。
- Super表示当前类的父类对象
- This表示当前类的对象
1、抽象类不可以使用final修饰
- 定义抽象类就是让其他继承的,而final修饰类表示该类不能被继承,与抽象类的理念违背了
2、抽象类与普通类的区别
- 普通类不能包含抽象方法,抽象类可以包含抽象方法
抽象类不能直接实例化,普通类可以直接实例化
- 接口就是某个事物对外提供的一些功能的声明,是一种特殊的java类
接口与抽象类有什么区别?
- 抽象类有构造方法,接口没有构造方法
- 抽象类只能单继承,接口可以多继承
- 抽象类可以有普通方法,接口中的所有方法都是抽象方法
- 接口的属性都是public static final修饰的,而抽象的不是



