原
子类继承父类,并重写父类方法
2016年08月04日 00:04:07 jinxueH专栏 阅读数:17172
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/euxnijuoh/article/details/52108863
-
例子1:
-
父类:
-
public class Person {
-
public String name;
-
public int age;
-
public Person(String name,int age){
-
this.name=name;
-
this.age=age;
-
}
-
public Person() /*如果不写这个构造函数,看看对类Student有什么影响。*/{
-
}
-
public void getInfo(){
-
System.out.println(name);
-
System.out.println(age);
-
}
-
}
-
子类:
-
public class Student extends Person{
-
String school;
-
public Student(String name,int age,String school){
-
super(name,age);
-
this.school=school;
-
}
-
public Student(){
-
}
-
public void study() {
-
System.out.println("学习非常棒!");
-
}
-
public static void main(String[] args)
-
{
-
Person p=new Person();
-
p.name="person";
-
p.age=45;
-
p.getInfo();
-
Student s=new Student();
-
s.name="student";
-
s.age=26;
-
s.getInfo();
-
s.study();
-
}
-
}
-
例子2:
-
在子类中可以根据需要对从父类中继承来的方法进行改造----方法的覆盖 ( 也叫重写)。
-
覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型。
-
例如例子1那个Student程序,它继承了Person类的getInfo方法,这个继承到的方法
-
只能打印出学生的name和age,不能打印出学生专有的信息,比如学校的名称等,这时我
-
们就应该在类Student中重新编写一个getInfo方法,这就是方法的覆盖。
-
父类:
-
package javatest;
-
public class Person {
-
public String name;
-
public int age;
-
public Person(String name,int age){
-
this.name=name;
-
this.age=age;
-
}
-
//如果不写这个构造函数,看看对类Student有什么影响。
-
public Person(){
-
}
-
public void getInfo(){
-
System.out.println(name);
-
System.out.println(age);
-
}
-
}
-
子类继承父类:
-
public class Student extends Person{
-
String school; //父类是没有的,子类特有的
-
public Student(String name,int age,String school){
-
super(name,age);
-
this.school=school;
-
}
-
public Student(){
-
}
-
public void study() {
-
System.out.println("学习非常棒!");
-
}
-
public void getInfo()
-
{
-
super.getInfo();
-
System.out.println(school);
-
}
-
public static void main(String[] args)
-
{
-
Person p=new Person();
-
p.name="person";
-
p.age=45;
-
p.getInfo();
-
Student s=new Student();
-
s.name="student";
-
s.age=26;
-
s.school="清华大学";
-
s.getInfo();
-
s.study();
-
}
-
}