您的位置:首页 > 编程语言 > Java开发

java学习之路 之 高级类特性-四种权限修饰符、关键字super、子类对象的实例化过程

2016-08-05 22:43 756 查看

四种访问权限修饰符

Java权限修饰符public、protected、private置于类的成员定义前,用来限定对象对该类对象成员的访问权限。



对于class的权限修饰只可以用public和default。

public类可以在任意地方被访问。

default类只可以被同一个包内部的类访问。

关键字super

在Java类中使用super来调用父类中的指定操作:

super可用于访问父类中定义的属性

super可用于调用父类中定义的成员方法

super可用于在子类构造方法中调用父类的构造器

注意:尤其当子父类出现同名成员时,可以用super进行区分

super的追溯不仅限于直接父类

super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识

关键字super举例

<pre name="code" class="java">class Person {
protected String name="张三";
protected int age;
public String getInfo() {
return "Name: " + name + "\nage: " + age;
}
}

class Student extends Person {
protected String name = "李四";
private String school = "New Oriental";
public String getSchool(){
return school;
}
public String getInfo() {
return super.getInfo() +"\nschool: " +school;
}
}

public class TestStudent{
public static void main(String[] args){
Student st = new Student();
System.out.println(st.getInfo());
}
}



调用父类的构造器

子类中所有的构造器默认都会访问父类中空参数的构造器

当父类中没有空参数的构造器时,子类的构造器必须通过this(参数列表)或者super(参数列表)语句指定调用本类或者父类中相应的构造器,且必须放在构造器的第一行

如果子类构造器中既未显式调用父类或本类的构造器,且父类中又没有无参的构造器,则编译出错

调用父类构造器举例

<pre name="code" class="java">public class Person {
private String name;
private int age;
private String gender;

public Person() {}

public Person(String name,int age,String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
}
public class Student extends Person {
private String school;

public Student() {}

public Student(String name,int age,String gender,String school) {
super(name,age,gender);
this.school = school;
}
}



this和super的区别



子类对象的实例化过程





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐