1. 程式人生 > >封裝、繼承和多型的具體例項

封裝、繼承和多型的具體例項

封裝

public class Demo_7 {
    public static void main(String []args)
    {
        Stu1 stu1=new Stu1();
        stu1.get_age(6);
    }
}

class Stu{
    //對屬性的封裝,一個學生的名字和學號都是這個學生的私有屬性
    private String name;
    private int id_num;
    private int idcard;
    //對該人對外界提供方法的封裝,可以設定這個學生的資訊,也可以獲得該學生的資訊
    //方法封裝
public void set_name(String name){ this.name=name; } public void set_idnum(int id_num){ this.id_num=id_num; } public void set_idcard(int idcard){ this.idcard=idcard; } public String get_name(){ return name; } public int get_id_num
(){ return id_num; } //注意,在此類中並沒有提供get學生idcard的方法,因此可以從外界將學生的idcard錄入, //但是外界卻不能訪問到學生的idcard。 } //很好的體現了封裝的好處 class Stu1{ public void get_age(int a) { //此時就不用沒建立一個物件都要寫一次列印了 System.out.println("學生的年齡是"+a); } }

繼承

public class Demo_8 {
    public static void
main(String []args) { Box1 v1=new Box1(1,2,3); int v=v1.box_v(); int s=v1.box_s();//使用繼承利用子類去訪問父類中的方法 System.out.println("盒子的面積是"+s); System.out.println("盒子的體積是"+v); } } //定義一個箱子類 class Box{ int s; int width=0;//箱子的寬 int length=0;//箱子的長 //初始箱子的長和寬 Box(int width,int length) { width=width; length=length; } Box() { width=0; length=0; } int box_s(){ s=width*length; return s; } } class Box1 extends Box{ int heigth; //繼承了父類的長和寬 Box1(int len,int wid,int hei){ length=len; width=wid; heigth=hei; } int box_v(){ return length*width*heigth; } }

多型


public class Demo_10 {
    public static void main(String[] args) {
        Pupil p1=new Pupil("張明",10520);
        Middle p2=new Middle("李浩",15);
        College p3=new College("周璐",20136585);
        Stu pa=new Stu(p1);
        Stu pb=new Stu(p2);
        Stu pc=new Stu(p3);
        p1.show();
        pa.show1();
        p2.show();
        pb.show1();
        p3.show();
        pc.show1();
    }
}

class Student{
    String name;
    int id_num;
    public void show()
    {
        System.out.println("我是一個學生");
    }
}

class Pupil extends Student{
    Pupil(String name,int id_num){
            this.name=name;
            this.id_num=id_num;
        }
    public void show(){
        System.out.println("我是一個小學生");
    }

}

class Middle extends Student{
    Middle(String name,int id_num){
        this.name=name;
        this.id_num=id_num;
    }
    public void show(){
        System.out.println("我是一箇中學生");
    }
}

class College extends Student{
    College(String name,int id_num){
        this.name=name;
        this.id_num=id_num;
    }
    public void show(){
        System.out.println("我是一個大學生");
    }
}

class Stu{
    Student stu;
    Stu(Student s)
    {
        stu=s;
    }
    public void show1(){
        System.out.println("我的名字是"+stu.name);
        System.out.println("我的學號是"+stu.id_num);
    }
}

執行結果是:
我是一個小學生
我的名字是張明
我的學號是10520
我是一箇中學生
我的名字是李浩
我的學號是15
我是一個大學生
我的名字是周璐
我的學號是20136585