Java 类的继承规则
- 子类继承父类的公有属性和方法
- 子类可以增加属性和方法
- 子类可以覆盖父类的属性和方法
- 子类可以重载父类的方法
- 子类可以初始化父类对象
![](https://oscimg.oschina.net/oscnet/9982bc989bb2e0a2ca2979bc8ca34280749.jpg) ![](https://oscimg.oschina.net/oscnet/9c29f8d356109d4687dffeb5767f19d7dee.jpg)
1 package com.org.cqust.ClassGroup;
2
3 public class Person {
4 private String name;
5
6 public String getName() {
7 return name;
8 }
9
10 public void setName(String name) {
11 this.name = name;
12 }
13 public void Show()
14 {
15 System.out.println("I am a PERSON,my name is:"+name);
16 }
17
18 }
Person
![](https://oscimg.oschina.net/oscnet/bfa91b63abb93362d2f7969451955f5c133.jpg) ![](https://oscimg.oschina.net/oscnet/fca9263e05fcf005205a6f31d8ddb3652ee.jpg)
1 package com.org.cqust.ClassGroup;
2
3 public class Student extends Person {//继承了父类的公有方法和属性
4 //
5 private String Sno;
6
7 public String getSno() {
8 return Sno;
9 }
10
11 public void setSno(String sno) {
12 Sno = sno;
13 }
14
15 public void ShowStudent()
16 {
17 super.Show();//父类方法
18 System.out.print("My Student No Is"+Sno);
19 }
20 public void Show()//和父类相同(名称,参数相同),就会覆盖父类方法
21 {
22 super.Show();//父类方法
23 System.out.print("My Student No Is"+Sno);
24 }
25
26 }
Student
![](https://oscimg.oschina.net/oscnet/0837966b706c74635f897198730d47efbb8.jpg) ![](https://oscimg.oschina.net/oscnet/5e3ad8137bf5aab5ae4acc28ebf1b86042c.jpg)
1 package com.org.cqust.MainTest;
2
3 import com.org.cqust.ClassGroup.*;
4
5 public class MainTest {
6 public static void main(String[] args){
7 /*
8 * 子类继承父类的公有属性和方法
9 子类可以增加属性和方法
10 子类可以覆盖父类的属性和方法
11 子类可以重载父类的方法
12 子类可以初始化父类对象
13 * */
14 //Usage 3:数组的使用
15 Person[] ps=new Person[5];
16 ps[0]=new Student();
17 ps[1]=new Person();
18
19 ps[0].Show();
20 System.out.println("------------------");
21 ps[1].Show();
22
23 //
24 // //Usage 2:子类可以初始化父类对象,父类对象只能调用父类拥有方法和属性。
25 // Person P=new Student();
26 // P.setName("ZhangSan");
27 // P.Show();//子类有的方法,父类同样有,则调用子类方法
28 //
29 //
30 //用法1,独立使用
31 // Student S=new Student();
32 // S.setName("ZhangSan");
33 // S.setSno("20170001");
34 // //S.Show();
35 // S.ShowStudent();
36
37 // Person p=new Person();
38 // p.setName("ZhangSan");
39 // p.Show();
40 }
41
42 }
测试代码