抽象,多态,封装,继承
抽象:把具体的事物,通过抽象,提取他们的共同特点,比如成年人,小孩,老人,抽象成人,然后把他们共同的特点抽出来,然后归纳
说道抽象,就需要说一下抽象类,说道抽象类,那么就必须和接口放在一起谈一谈
抽象类和接口的区别
抽象类里面的方法可以有具体的实现,接口不可以有
抽象类的继承使用extends,而接口的实现使用implements
抽象类不能被实例化,接口也不能
抽象类可以有构造器,接口没有
抽象类可以有main函数,接口没有
抽象类可以实现多个接口,而接口只能实现接口
抽象类添加新的方法,可以不影响子类,接口不行
多态:不同对象,对同一个消息,产生不同的反映
1 Person p =new child(); 2 Person p =new old();
还涉及到了向上转型和向下转型
向上转型,代码如上,可以自动转换
向下转型,需要强制转换,而且不能直接把父类对象转换成子类
//会报错 Child c = new Person(); //正确写法 Person p = new Child(); Child c = (Child)p
多态的优点
一旦需求发生变更,只需要修改new的对象(少量修改便可继续使用)
多态的条件
继承
方法的重写
父类的引用指向子类
封装:把对象属性和行为包裹成一个整体,对外提供功能,外部不了解怎么实现
继承:子类继承父类的属性和行为,并根据自己的需求来扩展行为