描述:
作用:
注意:
示例:
public class Son extends Father{ }
描述:
注意:
描述:
注意:
访问父类中的属性
public class Test {
public static void main(String[] args) {
new Student().say("王五");
}
}
class Person {
protected String name = "张三";
}
class Student extends Person {
private String name = "李四";
public void say(String name) {
System.out.println(name);//王五
System.out.println(this.name);//李四
/* 访问父类中的属性 */
System.out.println(super.name);//张三
}
}
调用父类中的方法
public class Test {
public static void main(String[] args) {
new Student().test();
}
}
class Person {
public void print() {
System.out.println("Person");
}
}
class Student extends Person {
public void print() {
System.out.println("Student");
}
public void test() {
print();//Student
this.print();//Student
/* 调用父类中的方法 */
super.print();//Person
}
}
调用父类中的构造器
public class Test {
public static void main(String[] args) {
System.out.println(new Student().name);//张三
}
}
class Person {
protected String name;
public Person(String name) {
this.name = name;
}
}
class Student extends Person {
public Student() {
/*
显式地调用父类的有参构造器。
若没有显式调用,默认会调用父类的无参构造器。
注意:
不管是显式还是隐式地调用父类的构造器,super语句一定要出现在子类构造器中第一行代码。
所以this和super不可能同时使用它们调用构造器,因为它们都要出现在第一行代码的位置。
*/
super("张三");
}
}
描述:
注意:
规则:
示例:
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.run();
System.out.println(student.test());
}
}
class Person {
public void run() {
System.out.println("personRun");
}
protected Object test() throws Exception {
return "personTest";
}
}
class Student extends Person {
/* 常见的方法重写示例 */
public void run() {
System.out.println("studentRun");
}
/* 特殊的方法重写示例 */
public String test() throws RuntimeException {
return "studentTest";
}
}
原文:https://www.cnblogs.com/conyoo/p/14037098.html