原
子类继承父类,并重写父类方法
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();}}