Java面向对象基础

面向对象

1)优点

易维护、易复用、易扩展,由于面向对象有封装、继承、多态的特性,可以设计出低耦合的系统,使系统更加灵活,更加易于维护。

2)缺点

性能比面向过程低。因为类在调用时需要实例化,开销比较大,消耗资源。

3)三大特性

  • 封装:就是把客观事物封装成抽象的类,并且可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
  • 继承:是指这样的一种能力,它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。
  • 多态:是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。

注意:

实现多态有3个必要条件

1.继承

2.重写

3.向上转型(父类引用指向子类对象)——将子类对象看作是父类类型,这也是我们平时使用多态的形式,这种情况下,无法调用子类特有的功能。相反,向下转型就是将父类引用指向的子类对象再转回子类类型,这种转型有危险,因为是强制性的,一旦转向的类型与这个对象不匹配,就会报错java.lang.ClassCastException(类型转换异常,属于运行时异常)

4)多态成员访问的特点

  • 成员变量

编译看左边(父类),运行看左边(父类)

一般使用情况很少,成员变量一般是私有的

  • 成员方法

编译看左边(父类),运行看右边(子类),动态绑定

子类中如果对父类中的方法进行了重写,父类中的方法无论如何都无法被访问,这也是java动态绑定的结果

动态绑定会选择最优执行方法,只要子类重写了父类的方法,无论在什么地方调用,都会先找子类

  • 静态方法

编译看左边(父类),运行看左边(父类)

你可能感兴趣的:(Java基础,java,开发语言)