史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2007-04-04, 09:33 PM   #1
leowang 帥哥
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設 疑問 - 如何改成抽象類別

PHP 語法:
interface Data
{   
   public 
void showData();   
}
interface 
Test
{
   public 
void showScore();
   public 
double calcu();
}
class 
CStu implements Data,Test
{
   protected 
String id;    // 學號
   
protected String name;  // 姓名 
   
protected int mid;      // 期中考成績
   
protected int finl;     // 期末考成績
   
protected int common;   // 平時成績
       
   
public CStu(String s1,String s2,int m,int f,int c)
   {
      
id=s1;
      
name=s2;
      
mid=m;
      
finl=f;   
      
common=c;   
   }
   public 
void show()
   {
      
showData();
      
showScore();
   }
   public 
void showScore()
   {
      
System.out.println("期中考成績:"+mid);
      
System.out.println("期末考成績:"+finl);
      
System.out.println("平時成績:"+common);
      
System.out.println("學期成績:"+calcu());
   }
   public 
void showData()
   {
      
System.out.println("學號:"+id);
      
System.out.println("姓名:"+name);
   }
   public 
double calcu()
   {
      return (
mid*0.3+finl*0.3+common*0.4);      
   }
}

public class 
hw11_11
{
   public static 
void main(String args[])
   {
      
CStu stu=new CStu("940001","Fiona",90,92,85);
      
stu.show();
   }

請問上列程式碼如何改成抽象類別的形式
__________________
https://lh3.googleusercontent.com/RuWvUdY-gxGU8oiOD6DIEoKZhLD-Hn-ITKj1LgD3QY6MehzkoddZNew3f3AFLA8dbxbnK-uiFipPzO3GpT5iL4VTIKCiYhgfnQiP5DROmn_5YIpA9zrseGljottMSbiTsw=w1280

金錢的數量,決定馬子的漂亮
硬碟的容量,決定男人的力量

製作Mail Logo按這裡
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-04-05, 02:23 AM   #2 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

雖然我不知道為什麼你要這要做
不過很好改
語法:
interface Data 
{    
   public void showData();    
} 
interface Test 
{ 
   public void showScore(); 
   public double calcu(); 
} 
abstract class CStu implements Data,Test 
{ 
   protected String id;    // 學號 
   protected String name;  // 姓名  
   protected int mid;      // 期中考成績 
   protected int finl;     // 期末考成績 
   protected int common;   // 平時成績 
        
   public CStu(String s1,String s2,int m,int f,int c) 
   { 
      id=s1; 
      name=s2; 
      mid=m; 
      finl=f;    
      common=c;    
   } 
   public void show() 
   { 
      showData(); 
      showScore(); 
   } 
   public void showScore() 
   { 
      System.out.println("期中考成績:"+mid); 
      System.out.println("期末考成績:"+finl); 
      System.out.println("平時成績:"+common); 
      System.out.println("學期成績:"+calcu()); 
   } 
   public void showData() 
   { 
      System.out.println("學號:"+id); 
      System.out.println("姓名:"+name); 
   } 
   public double calcu() 
   { 
      return (mid*0.3+finl*0.3+common*0.4);       
   } 
} 

class SubClass extends CStu{
	public SubClass(String s1,String s2,int m,int f,int c){
		super(s1,s2,m,f,c);
	}
}

public class App 
{ 
   public static void main(String args[]) 
   { 
      CStu stu=new SubClass("940001","Fiona",90,92,85); 
      stu.show(); 
   } 
}
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
向 snoopy 送花的會員:
leowang (2007-04-05)
感謝您發表一篇好文章
舊 2007-04-05, 10:49 AM   #3 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

沒有辦法把介面改成抽象類別嗎........
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-04-05, 04:45 PM   #4 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

可以啊
不過 java 是單一繼承制
所以你只能繼承其中一個類別

你想把兩個介面都改抽象類別
然後繼承這兩個類別就不行
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2007-04-05, 05:52 PM   #5 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

引用:
作者: snoopy 查看文章
可以啊
不過 java 是單一繼承制
所以你只能繼承其中一個類別

你想把兩個介面都改抽象類別
然後繼承這兩個類別就不行
那依大大所說 要如何來做修改呢
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-04-05, 06:07 PM   #6 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

語法:
interface Data {
	public void showData();
}

abstract class Test {
	abstract public void showScore();

	abstract public double calcu();
}

class CStu extends Test implements Data {
	protected String id; // 學號 

	protected String name; // 姓名  

	protected int mid; // 期中考成績 

	protected int finl; // 期末考成績 

	protected int common; // 平時成績 

	public CStu(String s1, String s2, int m, int f, int c) {
		id = s1;
		name = s2;
		mid = m;
		finl = f;
		common = c;
	}

	public void show() {
		showData();
		showScore();
	}

	public void showScore() {
		System.out.println("期中考成績:" + mid);
		System.out.println("期末考成績:" + finl);
		System.out.println("平時成績:" + common);
		System.out.println("學期成績:" + calcu());
	}

	public void showData() {
		System.out.println("學號:" + id);
		System.out.println("姓名:" + name);
	}

	public double calcu() {
		return (mid * 0.3 + finl * 0.3 + common * 0.4);
	}
}

public class App {
	public static void main(String args[]) {
		CStu stu = new CStu("940001", "Fiona", 90, 92, 85);
		stu.show();
	}
}
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
向 snoopy 送花的會員:
leowang (2007-04-06)
感謝您發表一篇好文章
舊 2007-04-06, 11:22 AM   #7 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

引用:
作者: snoopy 查看文章
語法:
interface Data {
	public void showData();
}

abstract class Test {
	abstract public void showScore();

	abstract public double calcu();
}

class CStu extends Test implements Data {
	protected String id; // 學號 

	protected String name; // 姓名  

	protected int mid; // 期中考成績 

	protected int finl; // 期末考成績 

	protected int common; // 平時成績 

	public CStu(String s1, String s2, int m, int f, int c) {
		id = s1;
		name = s2;
		mid = m;
		finl = f;
		common = c;
	}

	public void show() {
		showData();
		showScore();
	}

	public void showScore() {
		System.out.println("期中考成績:" + mid);
		System.out.println("期末考成績:" + finl);
		System.out.println("平時成績:" + common);
		System.out.println("學期成績:" + calcu());
	}

	public void showData() {
		System.out.println("學號:" + id);
		System.out.println("姓名:" + name);
	}

	public double calcu() {
		return (mid * 0.3 + finl * 0.3 + common * 0.4);
	}
}

public class App {
	public static void main(String args[]) {
		CStu stu = new CStu("940001", "Fiona", 90, 92, 85);
		stu.show();
	}
}
非常感謝大大的解答......大概知道怎修改了
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 02:52 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1