黑马程序员技术交流社区
标题:
面向对象第三天
[打印本页]
作者:
晓寒轻
时间:
2016-3-10 23:10
标题:
面向对象第三天
快递任务相关内容加入构造方法
构造方法:
创建对象的同时可以为成员变量赋值,是类必须定义的方法
构造方法不能被继承
接口没有构造方法,抽象类具有构造方法
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
父类(){
//重写需要重写的方法
};
匿名对象:
只有创建对象的语句,创建了对象,但没有变量名
匿名类如果不定义变量引用,也是匿名对象
clip_image00160083e72-1727-4f9a-a76c-cb47665ad170.png
(13.09 KB, 下载次数: 7)
下载附件
2016-3-10 23:09 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2