Java中super详解 |
您所在的位置:网站首页 › super,什么意思 › Java中super详解 |
目录 Java中super详解 super的作用: 1. 通过super可以访问父类的构造方法 2. 通过super可以访问父类的属性(非私有) 3. 通过super可以访问父类的方法(非私有的方法) Java中super详解在说super之前先说一下Java中的继承,继承是Java中面向对象编程技术的重要基石,因为它允许创建分等级层次的类。继承就是子类继承父类的行为和特征,就是方法和属性。私有的属性和方法子类是能继承的,但是子类无法直接调用,调用父类的私有属性需要在父类中声明get和set方法,这里final类型的父类成员私有变量也能被子类继承,而父类中的私有方法,子类虽然继承了,但是并不能够使用。 继承的限制:Java中只有单继承,多重继承,没有多继承(一个子类有多个父类的情况不允许存在) java权限修饰符 修饰符类包子类其他包public√√√√protected√√√×default√√××private√××× super的作用: 1. 通过super可以访问父类的构造方法调用父类构造方法的代码必须放在子类构造方法的第一行,不这样执行会报错(规定的格式),用super调用属性时不用遵守。 当父类没有无参构造方法时,不能直接使用super();调用父类构造方法 设置父类Person package com.kkb.task010203.pojo; import java.util.Objects; public class Person { private int age; private String name; public Person() { System.out.println("父类无参构造方法被调用");//无参构造函数 } public Person(int age, String name) { //有参构造函数 this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; return age == person.age && Objects.equals(name, person.name); } @Override public int hashCode() { return Objects.hash(age, name); } @Override public String toString() { return "姓名"+this.name+",年龄"+this.age; } public void setName(String name) { this.name = name; } public void say(){ //父类中的say方法 System.out.println("我叫"+name+"今年"+age+"岁了"); } }子类Teacher package com.kkb.task010203.pojo; public class Teacher extends Person{ public Teacher() {//子类的构造方法 super(14,"李四");//调用父类中有参构造方法 } }测试类 package com.kkb.task010203.pojo; public class MainTest { public static void main(String[] args) { Teacher teacher = new Teacher(); teacher.say();//由于子类中没有重定义say方法,这里调用Person父类中的say方法 } }输出结果 我们在父类属性中添加一个public属性 在子类方法中通过super操作Person父类中sex属性 这时父类中的sex属性已经被修改,可以通过print验证。 3. 通过super可以访问父类的方法(非私有的方法)利于super调用Person父类中的setName()方法修改Teacher对象的姓名属性
输出结果
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |