java是面向对象的语言,面向对象有四大特性:抽象、封装、继承、多态。
一、抽象
1、抽象就是将一个事务共有的属性和方法进行抽取。把多个类中相同的方法声明进行抽取,定义到一个类中。如果这个类中的方法只有方法声明没有方法体,这个方法就是抽象方法,有抽象方法的类一定是抽象类。
2、抽象的特点:
- 抽象类和抽象方法都要用abstract修饰;
- 有抽象方法的类一定是抽象类,而抽象类不一定有抽象方法;
- 一个类继承一个抽象类的时候,要么重写所有抽象方法,要么本身也是抽象类;
- 抽象类不能被实例化;
二、封装
封装就是把抽象的方法和对数据的操作封装在一起,数据和方法在内部,其他类想要访问只能通过指定的接口或者方法访问,对数据进行操作。封装保证了抽象出来的数据和方法的安全性,封装就是一个包装的过程,是一种思想。
三、继承
1、继承就是子类继承父类,可以拥有父类的方法和属性。继承可以解决代码的复用性问题,在程序中我们将通用的公共方法进行抽取,封装到一个类里面,其他的类需要使用相同的方法的时候,只需要继承这个类就可以;
2、注意事项:
- 子类继承父类不能访问父类的私有属性和构造方法;
- java只能单继承,一个类只能继承一个分类;
- java可以多层继承,C继承了B,B继承了A,C也可以访问A的方法和属性;
四、多态
1、多态就是一个引用(类)在不同的情况下所表现的多种形态。
多态的表现形式有:方法重写、方法重载、接口的继承、类的继承。
比如动物类,动物类可以是猫,可以是狗,也可以是熊猫,将不同的实体动物赋值给动物,动物类就表现出了不同的形态。
动物 A = new 猫();
A就可以访问猫的方法,比如猫抓老鼠;
动物 A = new 狗();
这个时候A就可以访问狗的方法,比如狗啃骨头;
这就是多态;
2、多态的前提:
- 要有继承或者实现关系;
- 要有方法的重写;
- 要有父类引用指向子类对象;