Java中的類繼承機制、接口
阿新 • • 發佈:2018-06-30
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中的類繼承機制、接口