面向对象super
super注意点:
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中!
- super 和 this 不能同时调用构造方法
this与super的用法对照
代表的对象不同:
this: 本身调用者这个对象
super: 代表父类对象的调用
前提:
this: 没继承也可以用
super: 只能在继承的条件才可以使用
构造方法:
this(); 本类的构造
super(); 父类的构造
继承类 extends 父类和子类
/* 1.继承是类和类的之间的关系还有依赖、组合、聚合等。 2.继承关系分两个类,一个为子类,一个为子类。子类继承父类, 使用关键字extends表示。 3.子类和父类之间,从意义上讲应该具有“is a”的关系 object类 super 方法重写 */
父类
public class Person父类 { //public 可调用 //protected //default 默认 //private 私有 int money = 10_0000_0000; //为默认default,也可调用 protected String name = "是豪豪啊"; public void say(){ System.out.println("说了一句话!"); } //方法要相同 public void print(){ System.out.println("Person"); } } /* public static void main(String[] args) { Student子类 student = new Student子类(); student.say(); System.out.println(student.money); } */
子类
//学生 is 人: 派生类 子类 //子类继承了父类,就会拥有父类的全部方法 //super.name 调用父类 public class Student子类 extends Person父类 { private String name ="豪豪"; public void test(String name){ System.out.println(name); //直接传参name System.out.println(this.name); //调用此类的name System.out.println(super.name); //super调用父类的name } public void print(){ print(); this.print(); super.print(); }
Application方法调试
//一个项目应该只存在一个main方法 //Application为总引擎,在这测试调用 public class Application { public static void main(String[] args) { Student子类 student = new Student子类(); student.test("aaa"); }
封装 private
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KXApgyvv-1648086186967)(E:\IDEA\java笔记\java截图\重写方法.png)]//对属性的封装 /* 1.提高程序的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.系统可维护增加了 */ //类 private:私有 public class 封装 { //属性私有 不可直接调用 private String name;//名字 private int id; //学号 private char sex; //性别 //提供一些咳哟操作这个属性的方法 //提供一些类public 的get set方法 //不通过改变属性从而获取输入 //get 获得这个数据 public String getName(){ return this.name; } //set 给这个数据设置值 public void setName(String name){ this.name = name; } } //alt + ins 快速生成get/set方法 /* public class Application { public static void main(String[] args) { 封装 s1 = new 封装(); s1.setName("豪豪"); //set.name()输入数据 System.out.println(s1.getName()); //get.name()获得数据 } */
方法重写
重写的都是方法,不是属性
子类重写了父类的方法 +===》指向父类的非静态方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6vR8HZVQ-1648086186969)(E:\IDEA\java笔记\java截图\重写方法.png)]
重写: 需要有继承关系,子类重写父类的方法
重写,子类的方法和父类必须要一直 :但是方法体不同
方法名必须相同
参数列表必须相同
修饰符: 范围可以扩大但不能缩小 : public>protected>default>private
抛出异常: 范围,可以缩小,但不能扩大
为什么重写:
- 父类的功能: 子类不一定需要,或者不一定满足
参数列表必须相同
修饰符: 范围可以扩大但不能缩小 : public>protected>default>private
抛出异常: 范围,可以缩小,但不能扩大
为什么重写:
父类的功能: 子类不一定需要,或者不一定满足
Alt + ins ; override