Re: [問題]關於多形和超載 程式碼問題
※ 引述《cscfish.bbs@bbs.wretch.cc (雙棲動物)》之銘言:
※ 引述《cscfish (雙棲動物)》之銘言:
> ※ 引述《cscfish (雙棲動物)》之銘言:
> > 就是為啥我計算出的數字都會是0 是哪要改嗎
> > 還有說要用多形和超載 那應該超載已經合多型條件了吧
> > 如果不合條件 那要怎麼改才可以呢
> > 因為getarea() 同時有計triangle circle rectangle的不同功能(多形)
[...]
> > =====================================================
> > public class calculate {
主函式並未展現多型的優點
> > public static void main(String args[]){
> > circle cir=new circle(3);
> > triangle tri=new triangle(3,3);
> > rectangle rec=new rectangle(3,3);
> > System.out.print("\n" +cir.getarea());
> > System.out.print("\n" +cir.getcircum());
> > System.out.print("\n" +tri.getarea());
> > System.out.print("\n" +tri.getcircum());
> > System.out.print("\n" +rec.getarea());
> > System.out.print("\n" +rec.getcircum());
> > }
> > }
: 接著我要加一功能就是隨便選一個圖形 在計算其面積
:
: 我改這樣不行 不知哪位大大可以在幫指點一下
: class calculate {
: public static void main(String args[]){
: System.out.print("input integer of n");
: int n=Integer.parseInt(keyin.readLine());//讀取輸入並存取n變數
:
: //int circle=1,rectangle=2,triangle=3;
: int create(n)
: {
: switch(n)
: {
: case 1:
: System.out.print("\n" +cir.getarea(3));
^^^
未宣告的變數名稱
: System.out.print("\n" +cir.getcircum(3));
: case 2:
: System.out.print("\n" +tri.getarea(3,3));
: System.out.print("\n" +tri.getcircum(3,3));
: case 3:
: System.out.print("\n" +rec.getarea(3,3));
: System.out.print("\n" +rec.getcircum(3,3));
: }
: }
: }
: }
多型應該是像這樣:
Shape shape = new Triangle(...);
shape.getarea(...);
shape.getcircum(...);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.207.15
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):