作者undeadj (undeadj)
看板java
标题Re: [问题] 多形问题
时间Thu Nov 1 15:09:03 2012
其实最根本的问题就是你的2个类别写坏了(先去真正了解abstract class的用途)
一般来说是不会出现
「在abstract class中宣告private member,又不在自己的类别内使用的情况」
如果这样作,自己(abstract class)又不用,我真不知道是宣告来干麻的
以你的例子来说,name和id就永远都不会被用到(取得),
所以改为protected or public 才是比较正确的作法
不然就是自己(abstract class)去使用它(name , id)
而Set与Get对abstract class来说,就是脱裤子放屁,多此一举。也完全破坏封装性
: 但是想请问还有其他方法吗?!
: 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: 27.243.203.126