封裝、繼承和多型的具體例項
阿新 • • 發佈:2018-12-23
封裝
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