1、java中的面向对象编程(oop)
-
面向对象的理解?
面向对象是一种思想。它将数据和操作数据的方法封装在对象中,从而使对象有了一些功能,也就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;这种思想将数据和操作数据的方法交给对象去管理,当我们需要某些功能的时候,只要找到能够实现该功能的对象然后让他去做就好了。 -
Java面向对象的三大特性:封装、继承、多态
(1)封装:将一个类中的方法实现细节信息隐藏,对外部提供方法访问。
优点:只能通过指定的方法访问,提高了安全性。
隐藏类的方法实现细节,方便修改和优化。(2)继承:基于已有的类的定义为基础,构建新的类,已有的类称为父类,新构建的类称为子类,子类能调用父类的非private修饰的成员,同时还可以自己添加一些新的成员,扩充父类,甚至重写父类已有的方法,更其表现符合子类的特征。
Java中父类可以拥有多个子类,但是子类只能继承一个父类,称为单继承。
继承的好处是:
• 实现了代码的复用。
• Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。
• 子类不能继承父类中访问权限为private的成员变量和方法。
• 子类可以重写父类的方法,即命名与父类同名的成员变量。缺陷:
1、父类变,子类就必须变。
2、继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的。
3、继承是一种强耦合关系。Java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。
子类并不能继承父类的默认构造函数,只能使用supper调用。
(3)多态:
多态是同一个行为具有多个不同表现形式或形态的能力。
它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。对面向对象来说,多态分为编译时多态和运行时多态。其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的方法。通过编译之后会变成两个不同的方法,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常所说的多态性。
java实现多态有三个必要的条件:继承、重写、向上转型
继承:在多态中必须存在有继承关系的子类和父类。
重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。Fu f= new Zi()//父类引用指向子类多态的实现方法:重写、接口、抽象类和抽象方法
多态优点:
i、 解耦、
ii、 代码块的重用,提高了代码的扩展性。