目录
一:this的作用以及本质
二:匿名对象(了解概念)
三:继承
四:this和super
五:方法的重写
六:封装
* 作用:区分局部变量和成员变量的同名的情况。
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来继承),向上抽取原则。
继承总结:
父类遵循向上抽取原则,而且一定是子类之间的共性,可以增加代码的复用性,还可以扩展新的功能。
1.用法: * this.成员变量名;//访问本类的成员变量 * this.成员方法名();//调用本类成员方法(this可以省略) * * super.成员变量名;//访问父类的成员变量 * super.成员方法名();//调用父类的成员方法(super不可以省略) * 2.扩展: * this(参数);//调用本类的其他构造,具体是哪一个构造,由参数类型决定 * super(参数)://调用父类的构造,具体哪一个构造,由参数类型决定 * 结论:a.子类中任何一个构造,都会无条件先调用父类的无参构造
ps:super必须在第一行,且默认调用父类的无参构造。
* b.我们可以通过 super(参数),调用父类中指定参数的构造
* 在子类 出现了和父类一模一样的方法(与修饰符和返回值无关) 那么子类中这个方法就是我们重写后的方法。
ps:重载是在同一个类,方法名相同,参数列表不同(参数个数,参数类型,参数顺序)。与修饰符和返回值无关。
* a.注意事项 * 1: 子类和父类中重写的那个方法权限可以不一样,子类方法权限>=父类方法权限 * 2.如果父类的方法是private或者final修饰,子类不能重写 * b.什么时候需要进行方法的重写 * 父类中方法,太low,不适用,不完善,那么子类需要自己重写他,自己实现他
把代码封装成一个对外开放的API以供调用达到相同的效果,并且可以隐藏好内部的实现细节。
