面向对象(三)
1.final关键字
特点:
- 修饰的类无法被继承
- 修饰的方法无法被重写
- 修饰的局部变量,一旦赋值,不可更改
- 修饰的的成员变量,必须要初始化赋值
-
pubic static final double PI=3.14 //常量赋值方法 final Customer a=new Customer("zhangsan"); a=new Customer("lisi");//(error)
总结:
final修饰基本数据类型的时候,值不可改变,修饰引用的数据类型,指向地址是不可以改变的,但是对象里面的值是可变化的
2.抽象类(abstract)
- 抽象类无法被实例化,无法创建抽象类的对象,虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的(多态的一种)
- 抽象类中的子类可以是抽象类,如果不是抽象类的话,必须对抽象类中的所有方法进行重写(一定要)
- 抽象类中不一定要有抽象方法,但抽象方法一定在抽象类中
- 抽象类和抽象方法不能被final修饰
- 抽象方法不需要加大括号,只要声明
3.接口(interface)
- 接口中只能出现常量和抽象方法
- 没有构造方法,无法创建接口的对象
- 接口与接口之间支持多继承,即一个接口可以有多个父接口
- 一个类可以实现多接口,即一个类可以拥有多个父接口
- 一个类如果实现了接口,那么这个类需要重写接口中的所有抽象方法(建议),如果不重写则这个类需要声明为抽象类(不建议)
-
interface A extends B,C{} class D implents A{}
总结:
- 接口的作用(建议使用接口,少用抽象类),因为一个类可以实现多个接口,但只能实现一个父类
- 降低了代码之间的耦合度,提高了代码的可插拔性
- 可以使项目分层,都面向接口开发,提高代码开发效率
4.API
Object类里面的toString()方法就是用来重写的,如果打印的是引用数据类型,默认调用toString()方法
equal:比较两个对象是否相同,不仅是值,有时还有指向地址
finalize:垃圾回收器
5.package
命名规范:package+com.公司域名.项目名.模块名
import导入包,通常建议用什么类,就导入什么类,如果导入所有类,浪费地址空间
java.lang下的类不需要用import进行导入

浙公网安备 33010602011771号