面向对象(二)
1.代码块
- 局部代码块:在方法中出现,限定变量生命周期,及早释放,提高内存利用率
- 构造代码块:在类中方法外出现多个构造方法中相同的代码存放在一起,每次调用构造函数都执行,在构造函数之前执行
- 静态代码块:在类中方法外出现,并加上static修饰,用于给类进行初始化,只执行一次
- 同步代码块:多线程部分,在加载的时候就执行,并且只执行一次,一般用于驱动
- 前提都是类被调用的时候
2.继承(单继承)
特点:父有多子,一子一父,默认继承的是Object类,private不能被继承
优点:
- 提高代码复用性、维护性
- 让类与类之间产生联系(是多态的前提)
- 子类可以访问其祖先的方法
缺点:
- 高耦合
软件开发:高内聚,低耦合
内聚:一个模块内各个元素彼此结合的紧密程度
耦合:一个软件里面不同模块之间相互连接的数量
3.重写
条件:
- 两个类是继承关系
- 有相同的方法名,相同的返回值类型,相同的参数列表
- 重写的方法不能比被重写的方法拥有更低的访问权限
- 私有的方法不能被重写
- 构造函数不能被重写
- 静态的方法不能被重写
- 重写指的的是成员函数,不是成员变量
4.super关键字
使用范围:
- 子类和父类中都有相同的成员变量和成员方法,例如,子类和父类都有name这个成员变量,如果子类想要访问父类的方法和成员变量,用super关键字
- 子类重写了父类的某个方法,如果子类中需要调用父类中的未重写的类时,用super关键字
5.多态
条件:
- 有继承,有方法重写,有父类引用指向子类对象
-
Animal m=new Cat(); //父类引用指向于子类对象,自动转换 - 动态绑定和静态绑定,上面代码m是静态绑定,new Cat()是动态绑定
- 多态父类访问子类没有重写的方法,需要向下转换(强制类型转换)
-
Animal m=new Cat(); Cat c2=(Cat)m; c2.move();
6.instanceof 关键字
作用:判断类型
Animal m=new Dog();
if(m instanceof Cat){
System.out.println("Yes")
}
else{
System.out.println("No");
}

浙公网安备 33010602011771号