Java(面向对象--继承,封装)

it2022-05-05  50

目录

一:this的作用以及本质

二:匿名对象(了解概念)

三:继承

四:this和super

五:方法的重写

六:封装


一:this的作用以及本质

*      作用:区分局部变量和成员变量的同名的情况。

ps:无类变量和实例变量的区别,只归为一个成员变量。 *      本质:this代表一个实例对象,具体是哪一个对象,那么由方法的调用者决定。

二:匿名对象(了解概念)

*      语法:只创建对象,而不是变量来接收ps: new Dog(); new Student() *      特点:一个匿名对象 只能使用一次,第二次使用就是一个新的匿名对象。

三:继承

 *      1.概念:  *          描述两个类之间的关系(子类和父类之间的关系)  *          一个类(子类) 在另外一个类(父类)的基础上创建,那么这个过程就叫做继承  *      2.语法:  *          public class 父类{}  *          public class 子类 extends 父类{}  *      3.继承的作用:  *          子类自动拥有父类的可继承(非private,final修饰)的成员变量和成员方法  *          提高了代码的复用性  *      4.继承中子父类的成员变量和成员方法的特点:  *          如果子父类中出现了同名的成员变量或者成员方法  *              通过子类对象调用成员变量或者成员方法时,优先调用子类自己的,如果子类没有,再去访问父类的  *      5.java中继承的特点:  *          1.java只支持单继承: 一个子类 只能有一个直接父类  *          2.java中支持多层继承

ps:类似c继承b,b在继承a类似于一个递归的过程。  *          3.子类自动拥有父类的可继承(非private和final修饰)的成员变量和成员方法

ps:继承遵循代码共性(比如a和b,可以把共性抽取出来当成基类,用a和b来继承),向上抽取原则。

继承总结:

         父类遵循向上抽取原则,而且一定是子类之间的共性,可以增加代码的复用性,还可以扩展新的功能。

四:this和super

1.用法:  *     this.成员变量名;//访问本类的成员变量  *     this.成员方法名();//调用本类成员方法(this可以省略)  *   *  super.成员变量名;//访问父类的成员变量  *  super.成员方法名();//调用父类的成员方法(super不可以省略)  *  2.扩展:  *      this(参数);//调用本类的其他构造,具体是哪一个构造,由参数类型决定  *      super(参数)://调用父类的构造,具体哪一个构造,由参数类型决定  *          结论:a.子类中任何一个构造,都会无条件先调用父类的无参构造

ps:super必须在第一行,且默认调用父类的无参构造。

 *              b.我们可以通过 super(参数),调用父类中指定参数的构造

五:方法的重写

 *      在子类 出现了和父类一模一样的方法(与修饰符和返回值无关) 那么子类中这个方法就是我们重写后的方法。

ps:重载是在同一个类,方法名相同,参数列表不同(参数个数,参数类型,参数顺序)。与修饰符和返回值无关。

 *      a.注意事项  *              1: 子类和父类中重写的那个方法权限可以不一样,子类方法权限>=父类方法权限  *              2.如果父类的方法是private或者final修饰,子类不能重写  *      b.什么时候需要进行方法的重写  *          父类中方法,太low,不适用,不完善,那么子类需要自己重写他,自己实现他

六:封装

把代码封装成一个对外开放的API以供调用达到相同的效果,并且可以隐藏好内部的实现细节。


最新回复(0)