作者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
1F:推 LPH66:name 跟 id 改为 protected 应该是你要的 10/28 16:22
2F:推 tomoyaken14:super? 10/28 16:27
3F:→ TWTRubiks:super我试过了~! 没办法, protected没教过~!我google 10/28 16:34
4F:→ TWTRubiks:看看 10/28 16:37
L大大~! 改成 protected 的确解决了~! 不过还有其他的方法可以解决吗?!
不过我猜 protected 应该是最简单的方法了~!
※ 编辑: TWTRubiks 来自: 203.64.91.231 (10/28 16:46)
5F:推 polppk:protected吧!不然getID(),getName(),加super() 10/28 18:00
6F:推 PsMonkey:重点是... 为甚麽一开始要设 private? 10/28 18:26
7F:推 PsMonkey:如果可以乱改,那加 getter/setter 也可以? 10/28 18:27
8F:→ LPH66:protected 这个关键字正是为了你这个情形才有的 10/28 21:03
9F:→ LPH66:这个宣告代表这些属性子类别有权存取 正是你所想要的情形 10/28 21:06