Java类的三大特性:
简言之,封装、继承、多态。
封装
含义:封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用。
实现:通过类来实现封装,通过访问修饰符来实现信息隐藏。
访问修饰符:共4种访问修饰符(包括3个关键字)
public:可以被所有的类访问。公共的。
protected:可以被同一包内的类访问和被子类继承。受保护的。
private:不能被其所在类以外的任何类访问。私有的。
缺省:只能被同一包内的类访问。【不写访问权限(默认权限,或称包权限)】
优势:a、将变化隔离 ;b、便于使用 ;c、提高重用性 ;d、提高安全性。
缺点:将变量等使用private修饰,或者封装进方法内,使其不能直接被访问,增加了访问步骤与难度!
继承
含义:多个类具有共同的属性(成员变量)与行为(成员方法)的时候,将这些共同的部分抽取出来定义到一个公共的类中,其他及各类可以与这个公共的类形成继承关系,从而在多个类中不需要重复定义公共部分。这个公共的类就是父类,也称为超类或者基类,其他的类就是子类。换句话说,继承是类与类的一种关系,比较像集合中的从属于关系。
注意:在Java中是单继承的,也就是说一个子类只有一个父类。
优势:a、减少代码量,能很好的提高复用率;b、使类与类之间存在继承关系,是实现多态操作的前提。
缺点:继承使得多个类之间具有了子父类关系,当一个类存在多个子类的时候,如果父类发生变化,那么这些子类会跟着一同变化,造成类与类之间的“强耦合”关系!而java编程一大要求就是要“高内聚、低耦合”,所以需要尽量减少耦合也就是多层继承。
特点:(1)子类比父类强大;
(2)java是单继承,不能进行多继承。但是可以继承多层子类(不建议继承超过3层);
(3)子类继承父类,但是对父类的成员变量是无法直接操作,只能通过父类继承过来的setter和getter方法。
多态
含义:多态指的是对象的多种形态。常说的多态就是java中的“向上转型”。
注意:封装和继承,是实现多态的基础。
向上转型:
Person p= new Teacher();
Person p= new Student();
其中Teacher类继承了Person父类,并重写了父类的方法。Student类同理。
作为父类,可以在实例化该对象的时候,让该对象自行决定响应何种行为。
举例来说,父类实现了disPlay()方法,子类Teacher、Student都对该方法进行了重写,而通过向上转型,也就是使得父类具备子类的方法特性。而java是单继承的,父类有多个子类,子类重写的父类方法也具有多个,因此称为多态。
【调用方法具体实现】p.disPlay()方法,向上转型的是哪个子类,则就实现哪个子类进行重写过后的disPlay方法。
前提: A.必须有子类和父类,具有继承或实现(继承) B.子类必须重写父类的方法(重写) C.父类的引用变量指向子类的对象(向上转型)
优势:
A. 可替换性,多态对一存在的代码具有可替代性;
B. 可扩充性:增加的子类不影响已存在的类的特性的运行和操作;
C. 接口性:多态时超类通过方法签名想子类提供了一个公共的接口,由子类来完善或者覆盖它而实现的;
D. 灵活性:在应用中体现了灵活多样的操作,提高了使用的效率;
E. 简化性: 多态简化对应用软件的代码的编写和修改过程,尤其在处理大量的对象的运算和操作时,这个特点尤为突出和重要。
缺点:只能使用父类的引用访问父类的成员。
特点:1、成员变量:编译与运行时期都看父类! 2、成员方法:编译时期看父类,运行时期看子类。
网友评论