面向对象三大特征:封装,继承,多态

封装,继承,多态是面向对象编程的三大特征。

1,封装:


是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。

封装的意义:

1)将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;
2)隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;
3)对类的属性和方法增加 访问权限控制。

封装的好处:

1)良好的封装能够减少耦合。
2)类内部的结构可以自由修改。
3)可以对成员进行更精确的控制。
4)隐藏信息,实现细节。

public class Person {
/*
*对属性的封装
*/
private String name ;
private String sex ;
private int age ;
/*
*setter()、getter()是该对象对外开发的接口
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(**int** age) {
this.age = age;
}
}

2,继承


继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

public class C extends A{
...
}

继承的特性:

1)子类拥有父类非private的属性和方法。
2)子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
3)子类可以用自己的方式实现父类的方法。

继承的好处

1)避免代码重复,提高代码的复用性。
2)类与类之间产生了关系,是多态的前提。
3)修改父类,影响所有的子类,便于修改,修改一次接口。

3,多态


多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。

多态体现的格式:

父类类型 变量名 = new 子类对象; 
    
接口名称 对象名 = new 实现类名称();

变量名.方法名();

多态的好处:

1)减少了重载方法的数量
2)符合开闭原则,即使增加子类,不需要提供额外的方法

Java实现多态有三个必要条件:

继承:在多态中必须存在有继承关系的子类和父类。

重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。

向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

格式:

父类类型 变量名 = new 子类类型();
如:Animal a = new Cat();

你可能感兴趣的:(java,oop,封装,继承)