子类继承父类,并重写父类方法

子类继承父类,并重写父类方法

2016年08月04日 00:04:07 jinxueH专栏 阅读数:17172

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/euxnijuoh/article/details/52108863

 
  1. 例子1:

  2. 父类:

  3. public class Person {

  4.  
  5.  
  6. public String name;

  7. public int age;

  8.  
  9. public Person(String name,int age){

  10. this.name=name;

  11. this.age=age;

  12. }

  13.  
  14. public Person() /*如果不写这个构造函数,看看对类Student有什么影响。*/{

  15.  
  16. }

  17.  
  18. public void getInfo(){

  19. System.out.println(name);

  20. System.out.println(age);

  21. }

  22. }

  23.  
  24. 子类:

  25. public class Student extends Person{

  26. String school;

  27. public Student(String name,int age,String school){

  28. super(name,age);

  29. this.school=school;

  30. }

  31.  
  32. public Student(){

  33.  
  34. }

  35.  
  36. public void study() {

  37. System.out.println("学习非常棒!");

  38. }

  39.  
  40. public static void main(String[] args)

  41. {

  42. Person p=new Person();

  43. p.name="person";

  44. p.age=45;

  45. p.getInfo();

  46.  
  47. Student s=new Student();

  48. s.name="student";

  49. s.age=26;

  50. s.getInfo();

  51. s.study();

  52. }

  53. }

  54.  
  55. 例子2:

  56. 在子类中可以根据需要对从父类中继承来的方法进行改造----方法的覆盖 ( 也叫重写)。

  57. 覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型。

  58. 例如例子1那个Student程序,它继承了Person类的getInfo方法,这个继承到的方法

  59. 只能打印出学生的name和age,不能打印出学生专有的信息,比如学校的名称等,这时我

  60. 们就应该在类Student中重新编写一个getInfo方法,这就是方法的覆盖。

  61.  
  62. 父类:

  63. package javatest;

  64.  
  65. public class Person {

  66. public String name;

  67. public int age;

  68.  
  69. public Person(String name,int age){

  70. this.name=name;

  71. this.age=age;

  72. }

  73. //如果不写这个构造函数,看看对类Student有什么影响。

  74. public Person(){

  75.  
  76. }

  77.  
  78. public void getInfo(){

  79. System.out.println(name);

  80. System.out.println(age);

  81. }

  82. }

  83.  
  84. 子类继承父类:

  85. public class Student extends Person{

  86. String school; //父类是没有的,子类特有的

  87. public Student(String name,int age,String school){

  88. super(name,age);

  89. this.school=school;

  90. }

  91.  
  92. public Student(){

  93.  
  94. }

  95.  
  96. public void study() {

  97. System.out.println("学习非常棒!");

  98. }

  99.  
  100. public void getInfo()

  101. {

  102. super.getInfo();

  103. System.out.println(school);

  104. }

  105.  
  106.  
  107. public static void main(String[] args)

  108. {

  109. Person p=new Person();

  110. p.name="person";

  111. p.age=45;

  112. p.getInfo();

  113.  
  114. Student s=new Student();

  115. s.name="student";

  116. s.age=26;

  117. s.school="清华大学";

  118. s.getInfo();

  119. s.study();

  120. }

  121. }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值