java面向对象及String总结
构造方法的定义
- 构造方法没有返回值
- 构造方法可以没有参数
- 构造方法的方法名必须与类名相同
方法重载的定义
- 方法重载指在一个类中定义多个同名的方法,但是要求每个方法具有不同的参数类型、参数顺序、参数个数
修饰符的种类(三类四种)
- public 在任何地方都可以访问
- protected 在同包及同包下的子类都可以访问
- package -access 在同包及同包下的子类都可以访问
- private 只能在本类中使用
实例成员与静态成员的区别
实例成员 | 静态成员 |
---|---|
实例成员属于对象 | 静态成员属于类,在累加载时完成初始化 |
实例成员通过对象调用 | 静态成员通过类名来调用 |
实例成员可以调用实例方法,也可以调用静态方法(成员)(不推荐) | 静态成员不能调用实例成员,只能调用静态方法 |
实例属性可以用this来替代替实例 | 😊静态成员不能使用this |
实例成员在创建对象时分配内存空间 | 静态成员在类加载时分配内存空间 |
实例成员的生命周期和他创建的对象一样长(随对象的创建开始,随对象的销毁结束) | 静态成员只要在程序运行期间一直存在 |
this关键字的作用
- this代指当前对象(表示对当前对象的引用)
- 区分局部变量和实例变量
- 作为方法参数传递
- 返回当前对象
- this可以调用实例方法,实例成员
- this可以调用构造方法(必须写在构造方法中的第一行)
super关键字
- 在子类的构造方法中通过super来调用父类的构造,以便完成父类的初始化
- 访问父类的成员变量和成员方法,使用super关键字可以访问被子类覆盖的成员变量和方法
- 在子类中调用父类的方法,以实现在子类中使用父类的方法逻辑的扩展
this与super的区别
- this表示对当前对象的引用以及区分局部变量和实例变量,作为方法参数传递,返回当前对象,调用实例方法成员
- super表示对父类的引用,只能出现在子类中主要用来调用父类的构造方法,实例方法,被子类遮蔽的成员变量成员方法
方法重写与方法重载的区别
方法重写 | 方法重载 |
---|---|
方法重写时子类对父类方法的重写(完成子类的方法需求) | 方法重载实在同一个类里面 |
方法重写时方法名、返回值、参数类型、个数、顺序都要和父类保持一致 | 方法重载时它只要求方法名相同,参数类型、参数顺序、参数个数不同 |
重写时不能缩小被重写方法的访问权限 | 编译时多态 |
不能用子类的非静态方法重写父类的静态方法 | |
不能重写父类的额最终方法 | |
不能用子类的静态方法重写父类的实例方法 | |
方法重写运行时多态 |
Object类 :
解释:Object类所有类的直接父类或间接父类,即祖宗类
- 通过重写Object类的 toString()、equals()、hashCode()的方法实现子类的具体需求
instanceof 方法
判断指向判断当前对象是不是它右边类的实例
Pet pet instanceof Dog dog;
JAVA中继承关系中的实例化过程
- 加载父类的静态变量
- 加载父类的静态代码块
- 初始化子类的静态变量
- 初始化子类的静态代码块
- 初始化父类的实例变量,代码块,构造器
- 初始化子类的实例变量,代码块,构造器