面向对象三大特征:
封装、继承、多态
封装:
封装的理解:
在Java中,封装就是将类中的一些成员封装起来,这里的成员包括成员方法和成员属性,他们都是可以封装的,封装顾名思义也就是不让外部随意访问,也或者根本就不让你访问,这要根据成员的性质来判断。就像你的基本信息别人可以知道,但是你的一些小秘密,别人能知道吗?当然不可以,你也不会给别人这些秘密的访问权限!
封装的步骤:
a) 私有化属性
b) 生成公共的get&set方法
c) 生成有参无参构造
继承:
继承的关键字&特性:
- 在父子类继承关系中,当父类无法满足子类的需求时,子类需要重写父类的非私有非静态的同名方法,
- 方法名称相同,
- 参数的个数顺序类型必须完全相同,
- 返回值也要必须相同
- 子类的访问权限不能小于父类(private default protected public)
- 子类不能抛出比父类更多的异常,但可以是父类异常的子异常
继承的好处:
1、提高了代码的复用性。
2、继承的出现让类与类之间产生了关系,提供了多态的前提。
Java中只支持单继承。不直接支持多继承,但是对c++中的多继承提供了改良。
单继承:一个类只能有一个父类。类似于一个儿子只能有一个父亲。
多继承:一个子类可以有多个直接父类(java中不允许,进行改良)不直接支持,因为多个父类中有相同成员,会产生调用的不确定性。在Java中是通过“多实现”的方式来体现。
Java支持多层(多重)继承C继承B,B继承A时,就会出现一个继承体系。
1、查看该体系的顶层类,了解该体系的基本功能。
2、创建体系中的最子类对象,完成功能的使用。
多态:
1.什么是多态
面向对象的多态性就是将父类对象应用到子类对象的特征。简单地讲,多态指的就是在应用程序中出现的“重名”现象。多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类和相关类。这样既降低了维护的难度,又节省了时间。
2.在java语言中,多态性体现在哪些方面
- 方法重载: 在同一个类,方法的名称相同,参数的个数,顺序,类型至少有一个不同,那么就构成了方法的重载,方法的重载与返回值类型和修饰符无关
- 方法重写:
1) 在父子类继承关系中,当父类无法满足子类的需求时,子类需要重写父类的非私有非静态的同名方法,
2)方法名称相同,
3)参数的个数顺序类型必须完全相同,
4)返回值也要必须相同
5)子类的访问权限不能小于父类(private default protected public)
6)子类不能抛出比父类更多的异常,但可以是父类异常的子异常 - 抽象类:
1)定义格式:public abstract class 类名
2)抽象类中可以有普通方法也可以有抽象方法
3)若一个类继承了抽象类那么这个类就必须重写抽象类中的所有抽象方法
4)抽象类不能被实例化(抽象类中有构造方法) - 接口:在多态机制中,接口比抽象类使用起来更加方便。而抽象类组成的集合就是接口。
接口: - 接口是一种特殊的抽象类
- 格式:public interface 接口名
- 接口中所有的方法都是抽象方法;默认都是使用public abstract修饰的
- 接口中所有的属性都是使用public static final修饰的,也就是说都是静态的常量
- 接口不能被实例化(接口中没有构造方法)
- 类与接口之间是实现的关系,即类需要实现接口格式 : public class 类名 implements 接口名,
- 类可以实现多个接口(类的多实现),多个接口之间使用,间隔(一个类可以实现多个接口,一个接口可以被多个类实现)
- 一个类实现了接口,那么就必须重写接口中的所有抽象方法