作者TWTRubiks (阿哲)
看板java
標題[問題] 多形問題
時間Sun Oct 28 16:15:09 2012
目的,我想要把name和id宣告成private然後印出來(宣告成public就很簡單)
不過我想要宣告成private印出來(試了很多方法),都無法解決,想請問有甚麼比較好的解
決方法
我試過了用類似Getid(),不過還是不行因為還要Setid(),這樣會讓Person變得很雜
目前知道的解決方法,使用protected可以解決!
但是想請問還有其他方法嗎?!
package aaa;
abstract class Person{
private String name;
private int id;
abstract void printPerson();
}
class Student extends Person{
private double g1,g2,g3;
public Student(String name,int id,double g1,double g2,double g3){
//這裡我就不知道該怎麼打了,因為我式宣告成private,也以也不能打 ex. thid.id = id
this.g1=g1; this.g2=g2; this.g3=g3;
}
public void printPerson(){
double average,sum;
sum=g1+g2+g3;
average=sum/3;
//
當然這裡也悲劇
// System.out.println("姓名:"+name);
// System.out.println("編號:"+getID());
System.out.println("總分:"+sum);
System.out.println("平均:"+average);
}
}
public class AAA {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student S=new Student("TWTRubiks",1100104105,96,99,60);
S.printPerson();
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.64.91.231
推 LPH66:name 跟 id 改為 protected 應該是你要的 10/28 16:22
推 tomoyaken14:super? 10/28 16:27
→ TWTRubiks:super我試過了~! 沒辦法, protected沒教過~!我google 10/28 16:34
→ TWTRubiks:看看 10/28 16:37
L大大~! 改成 protected 的確解決了~! 不過還有其他的方法可以解決嗎?!
不過我猜 protected 應該是最簡單的方法了~!
※ 編輯: TWTRubiks 來自: 203.64.91.231 (10/28 16:46)
推 polppk:protected吧!不然getID(),getName(),加super() 10/28 18:00
推 PsMonkey:重點是... 為甚麼一開始要設 private? 10/28 18:26
推 PsMonkey:如果可以亂改,那加 getter/setter 也可以? 10/28 18:27
→ LPH66:protected 這個關鍵字正是為了你這個情形才有的 10/28 21:03
→ LPH66:這個宣告代表這些屬性子類別有權存取 正是你所想要的情形 10/28 21:06