1. 程式人生 > >Java中的類繼承機制、接口

Java中的類繼承機制、接口

string類型 賦值 In void ati ble public 3.1 eache

1)聲明一個Person類,有name(String類型)、age(int類型)、sex(char類型)屬性,通過構造方法進行賦值。一個show方法,返回String類型,內容如下:

    某某 男(女) 年齡

2)聲明一個Student類,繼承Person類,增加id(int,學號)屬性,通過構造方法,利用super調用父類構造方法來進行變量賦值。Override父類的show方法,返回String類型,內容如下:

    某某 男(女) 年齡 學號     (提示:利用super調用父類的show方法得到除學號部分的String,然後加上學號的信息。)

3)聲明一個Teacher類,繼承Person,增加course(String,所教課程)屬性,通過構造方法,利用super調用父類構造方法來進行變量賦值。Override父類的show方法,返回String類型,內容如下:

    某某 男(女)年齡 所教課程    (提示:利用super調用父類的show方法得到除所教課程部分的String,然後加上所教課程的信息。)

4)聲明PersonApp類,在其中的main方法中分別聲明Person、Student、Teacher類型的變量,並通過構造方法初始化,然後顯示各自的信息。

 1 public class PersonApp{
 2     public static void main(String[] ages){
 3         Person p=new Person("張三",‘男‘,20);
 4         Person s=new
Student("李四",‘男‘,21,16040210); 5 Person t=new Teacher("王五",‘女‘,22,"數學"); 6 System.out.println(p.show()); 7 System.out.println(s.show()); 8 System.out.println(t.show()); 9 } 10 } 11 class Person{ 12 private String name; 13 private char sex; 14 private
int age; 15 Person(String name,char sex,int age){ 16 this.name=name; 17 this.sex=sex; 18 this.age=age; 19 } 20 public String getName(){ 21 return name; 22 } 23 public void setName(String name){ 24 this.name=name; 25 } 26 public char getSex(){ 27 return sex; 28 } 29 public void setSex(char sex){ 30 if(sex==‘男‘||sex==‘女‘) 31 this.sex=sex; 32 else 33 System.out.println("sex error!"); 34 } 35 public int getAge(){ 36 return age; 37 } 38 public void setAge(int age){ 39 if(age>0&&age<120) 40 this.age=age; 41 else 42 System.out.println("age error!"); 43 } 44 public String show(){ 45 return name+","+sex+","+age; 46 } 47 } 48 class Student extends Person{ 49 private int id; 50 Student(String name,char sex,int age,int id){ 51 super(name,sex,age); 52 this.id=id; 53 } 54 public String show(){ 55 return super.show()+","+id; 56 } 57 } 58 class Teacher extends Person{ 59 private String course; 60 Teacher(String name,char sex,int age,String course){ 61 super(name,sex,age); 62 this.course=course; 63 } 64 public String show(){ 65 return super.show()+" "+course; 66 } 67 }

聲明一個Shape接口,其中有計算面積(area)、周長(perimeter)的方法,有以下幾個實現:Circle(圓),Rectangle(矩形),Triangle(三角形),都有計算面積、周長的方法。

 1 interface  Shape
 2 {
 3    void count();
 4 }
 5 class Circle implements Shape
 6 {
 7     private int r;
 8     private double CirclePerimeter;
 9     Circle(int r)
10     {
11         this.r=r;
12     }
13     public void count()
14     {
15         if(r<0||r==0)
16         {
17             System.out.println("r error!");
18             return;
19         }
20         else
21         CirclePerimeter=2*r*3.14;
22         double CircleArea=3.14*r*r;
23         System.out.println("圓的周長是:"+CirclePerimeter+",面積是 "+CircleArea);
24     }
25 }
26 class Rectangle implements Shape
27 {
28     private double l,w;
29     private double RectanglePerimeter;
30     Rectangle(double l,double w)
31     {
32         this.l=l;
33         this.w=w;
34     }
35     public void count()
36     {
37         if((l>0)&&(w>0))
38         {
39         RectanglePerimeter=2*(l+w);
40         double RectangleArea=l*w;
41         System.out.println("矩形的周長是:"+RectanglePerimeter+",面積是"+RectangleArea);
42         }
43         else
44         {
45             System.out.println("l or w error!");
46         }
47             
48     }
49 }
50 class Triangle implements Shape
51 {
52     private double d,h,s1,s2;
53     Triangle(double d,double h,double s1,double s2)
54     {
55         this.d=d;
56         this.h=h;
57         this.s1=s1;
58         this.s2=s2;
59     }
60     public void count()
61     {
62         if((d>0)&&(s1>0)&&(s2>0)&&(h>0))
63         {
64             double TrianglePerimeter=d+s1+s2;
65             double TriangleArea=(d*h)/2;
66             System.out.println("三角形的周長是:"+TrianglePerimeter+",面積是"+TriangleArea);
67         }
68         else
69         {
70             System.out.println("d or h or s1 or s2 error!");
71         }
72     }
73 }
74 public class Show
75 {
76     public static void main(String[] args)
77     {
78         Shape a1=new Circle(3);
79         Shape a2=new Rectangle(4,5);
80         Shape a3=new Triangle(8,3,5,5);
81         a1.count();
82         a2.count();
83         a3.count();
84     }
85 }

Java中的類繼承機制、接口