快递任务相关内容加入构造方法 构造方法: 创建对象的同时可以为成员变量赋值,是类必须定义的方法
构造方法不能被继承
接口没有构造方法,抽象类具有构造方法
this与super关键字: 访问子类区域的成员使用this,访问父类区域的成员使用super
this/super都可以调用构造方法,在第一行
super(); 子类调用父类构造方法,括号里面可以使用不同的参数对应父类不同的有参构造
this(); 子类调用子类自己的构造方法,可以通过传参对应不同的有参构造
成员变量符合就近原则:
局部变量>本类成员变量>父类成员变量
继承后对象内存: 子类调用父类构造函数,相当于在子类的内存区域中间创建了父类的对象,右侧中间蓝色区域
多态 在Java中,一个对象具有多种形态。子类不仅可以赋值给一个同类型的引用,也可以赋值给它父类型的引用。
多态的前提是必须有子父类的关系
多态如果没有方法重写,也没有意义
在调用方法时,只有在调用方法时调用的是子类重写过的方法,在编译以及运行都是依据数据类型进行判断。
向上转型:
多态本身的父类引用指向子类对象就是 将子类对象向上转型
向下转型:
如果之前已经是一个子类对象,提升成了父类引用,就可以强制向下转为子类
快递任务使用其他关键字小需求 final final是最终修饰符,可以修饰类、成员方法、成员变量
final修饰的变量不能被改变,此时已经是常量、注意命名规则 AAA_BBB_CCC
final修饰的类无法被继承 、
final修饰的方法无法被重写、
引用类型的变量值为对象的地址,地址值不能改,但是里面的内容可以改:
final Person p = new Person();
p.setName("姓名");
p的地址不能改变,但是p可以将里面的值改变
static static关键字是静态修饰符,修饰的成员可以不创建对象,直接用类名进行调用
被static修饰的成员属于类,不属于单个类的对象(所有对象共用该成员)
通常使用public static final来修饰某个类中的静态常量(为了解决难写的字符或不容易记的内容)
静态内容是优先于对象存在,只能访问静态,不能使用this/super
匿名内部类: 是创建某个类型子类的快捷方式
定义一个类的同时创建这个类的对象
格式:
new 父类(){
//重写需要重写的方法
};
匿名对象: 只有创建对象的语句,创建了对象,但没有变量名
匿名类如果不定义变量引用,也是匿名对象
|
|