面向对象的三大特性(封装-继承-多态).docx

面向对象的三大特性(封装-继承-多态).docx

ID:59509860

大小:104.25 KB

页数:6页

时间:2020-11-04

面向对象的三大特性(封装-继承-多态).docx_第1页
面向对象的三大特性(封装-继承-多态).docx_第2页
面向对象的三大特性(封装-继承-多态).docx_第3页
面向对象的三大特性(封装-继承-多态).docx_第4页
面向对象的三大特性(封装-继承-多态).docx_第5页
资源描述:

《面向对象的三大特性(封装-继承-多态).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一丶封装 1权限修饰符      可以用来修饰成员变量和成员方法,对于类的权限修饰只可以用public和缺省default。           被public修饰的类可以在任意地方被访问;default类只可以被同一个包内部的类访问。      权限由大到小:publicprotecteddefault(不写)private           被private修饰的成员只能在本类中访问,外界不能访问2set()/get()方法  (1)this关键字    a.可以用来调用变量,方法,构造方法;    b.this.xx理解为调用当前类

2、的xx。  (2)成员变量和局部变量    1)在类中的位置不同     a:成员变量:在类中,方法外      b:局部变量:在方法声明上(形式参数),或者是在方法定义中    2)在内存中的位置不同     a:成员变量:在堆内存     b:局部变量:在栈内存    3)生命周期不同     a:成员变量:随着对象的创建而存在,随着对象的消失而消失     b:局部变量:随着方法调用而存在,随着方法的调用结束而消失    4)初始化值不同     a:成员变量:有默认值     b:局部变量:必须初始化值,否则报错!(在使用它之前,没

3、有初始化)  (3)set()/get()方法    当成员变量被private修饰时,不在本类中无法直接访问,便需要set()/get()方法来解决这个问题3封装性  封装:是面向对象的第一大特性,所谓封装,就是值对外部不可见(一般而言被private修饰),外部只能通过对象提供的接口(如set()/get()方法)来访问。  封装的好处:a.良好的封装能够减少耦合;     b.类内部的结构可以自己修改,对外部影响不大;     c.可以对成员进行更精准的控制(防止出现与事实不符的情况);     d.影藏实现细节。  注意:在开发中,

4、类的成员变量全部要进行封装,封装之后通过set()/get()方法访问。二丶继承extends 1实现:通过classZiextendsFu{}实现类的继承  (1)子类继承父类,父类中声明的属性,方法,子类都可以获取到;   当父类中有私有的属性方法时,子类同样可以获取到,由于封装性的设计,使得子类不能直接调用访问。  (2)子类除了可以继承父类的结构外,还可以定义直接特有的成员变量,成员方法;  (3)Java中类的继承只支持单继承,一个类只能继承一个父类,父类可以有多个子类,但是可以多层继承;  (4)子类不能继承父类的构造方法,可以

5、间接的通过super关键字去访问父类的构造方法(super(););   在子类的构造方法中如果没有显示的调用父类的构造方法,会默认调用父类的无参构造(所以最好父类都写有无参构造方法)。   子类继承父类的访问特点:首先父类进行初始化,然后子类进行初始化;多层访问! 2 方法的重写(区别重载)  子类继承父类以后,若父类的方法对子类不适用,那么子类可以对父类方法重写(override)  规则:1)要求子类方法的返回值类型方法名(参数列表)与父类方法一致;    2)子类方法的权限修饰符不能小于父类方法的修饰权限;    3)若父类方法抛异

6、常,那么子类方法抛的异常类型不能大于父类;  注意: a.当子类重写了父类的方法以后,可以用super.方法调用父类被重写的内容;    b.子父类的方法必须同为static或同为非static。classFu{ privateinti; publicFu(){ //无参构造super();可以省略  super(); } publicFu(inti){ //有参构造  super();  this.i=i; } publicvoidseti(inti){  this.i=i; } publicintgeti(){  returni; } 

7、publicvoidshow(){  System.out.println("这是父类"); }}classZiextendsFu{  publicZi(){ //无参构造  super(); } publicZi(inti){ //有参构造,这块的super就不能省略  super(i); } @Override //重写了父类中的show()方法 publicvoidshow(){  System.out.println("这是子类"); }}publicclassTest{ publicstaticvoidmain(String[]a

8、ges){  Ziz=newZi();   z.seti(10);   //Ziz=newzi(10);  System.out.println(z.geti()); //10 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。