面向对象(二)

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");
}

 

 

 

posted @ 2019-03-28 08:44  一起学编程  阅读(97)  评论(0)    收藏  举报