向对象的的基本特征:抽象,封装,继承,多态

抽象:抽象就是提取出事物之间的共性,即个体所属的类别的共有属性和方法。比如我们要设计一个ArrayList容器,它的底层是用数组实现,并且能够实现当容量不足时,申请一个更大的数组,将原数组的内容复制过去。首先,分析出ArrayList是属于容器,那么我们要抽象出容器的共性。即一个Collection接口,然后再让ArrayList类继承这个接口,即类的实现要依赖于抽象来实现。 然后使用的时候是这样子使用Collection<E> container = new ArrayList<E>();(因为Collection抽象出了容器的共性),,那么只要将new ArrayList<E>() 改成 new Set<E>()即可。public interface Collection<E> implements Iterator{();public isEmpty();(E e);(E e);();public Iterator<E> iterator();…….}public class ArrayList<E> implements Collection<E>{();public isEmpty();(E e);(E e);();public Iterator<E> iterator();…….private int capacity;private E[] dataContainer;public ArrayList();();(int index);public add(E e, int index);}封装:封装是将对象的属性和行为绑到一起的机制,并且尽可能的隐藏内部的属性和实现。并且向外提供接口,接口反映了该类的功能。这样子的好处是,只能通过给定的接口修改类的属性,这样子大大提高了程序的健壮性。并且类内部的实现和外部的展示所用到的数据类型可能不一样,类的内部可以随意修改,只要提供的接口不变即可,这样子大大提高了程序的灵活性。public class People{private String name;private int age;public People(String name, int age){setName(name);setAge(age);}public String getName(){return name;}(String name){if(name==null).name = name;}(){return age;}(int age){if(age<0 || age>150).age = age;}}封装使得我们使用类的时候不关心类的内部实现,只关心它的接口,这和客观世界一样,我们使用某种东西,只关心它的功能,而不关心它是怎么实现的。继承:抽象的原则是舍弃事物的特性,提取其共性。如果不考虑事物的特性,那么就不能反映客观世界中的层次关系。所以继承是是在抽象(共性)的基础上,重新考虑抽象过程中舍弃掉的那部分事物的特性。继承的优点1、相比不使用继承的类,派生类的描述更加简洁。(我们立志于设计小巧的类,这样更容易于理解)2、实现代码复用3、使得程序易于维护和扩展,(暂时不明白,等我学了工厂模式来举个栗子说明)多态:多态是不同事物对同一个消息(方法)做出不同不同的反应的能力(函数体)。多态是建立在继承和父类引用指向子类引用的基础上。上面那个ArrayList和Set的例子就说明了多态。

海内存知已,天涯若比邻。

向对象的的基本特征:抽象,封装,继承,多态

相关文章:

你感兴趣的文章:

标签云: