Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Java Help > Re: access leve...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 10 of 11 Topic 15966 of 16566
Post > Topic >>

Re: access levels for private field which is inherited

by thufir <hawat.thufir@[EMAIL PROTECTED] > Apr 15, 2008 at 11:06 PM

On Sun, 13 Apr 2008 09:37:03 -0700, Mark Space wrote:

> Anyway, calling super here is probably the best choice. Note than in
> your example you must call super because Bar has no default constructor.
> 
> One can also provide a factory method such as newInstance below.


I want to use the factory method, but am running into a conceptual 
problem with regards to packages, interfaces and casting.  If I make 
StudentDescriptor an interface then things would would work, or maybe a 
cast?  I'd like to keep StudentDescriptor an abstract class which Student 
extends, and use the factory pattern.

I've seemingly painted myself into a corner with:

bcit@[EMAIL PROTECTED]
 
bcit@[EMAIL PROTECTED]
 javac -d /home/bcit/java/prod/ -cp . a00720398/
Lab1.java a00720398/data/*.java
a00720398/Lab1.java:13: incompatible types
found   : a00720398.data.StudentDescriptor
required: a00720398.data.Student
                        Student student = Student.newStudent();
                                                            ^
1 error
bcit@[EMAIL PROTECTED]
 
bcit@[EMAIL PROTECTED]
 cat a00720398/data/StudentDescriptor.java 
package a00720398.data;

class StudentDescriptor
implements HasName, HasNumber {

        private String name = MY_NAME;
        private String number = MY_NUMBER;


        public StudentDescriptor() {}

        public static StudentDescriptor newInstance() {
                return new StudentDescriptor();
        }

        public String getName() {
                return name;
        }

        public String getNumber() {
                return number;
        }

        public void setName(String name) {
                this.name = name;
        }

        public void setNumber(String number) {
                this.number = number;
        }

        public String toString(){
                return getNumber() + ", " + getName();
        }

}
bcit@[EMAIL PROTECTED]
 
bcit@[EMAIL PROTECTED]
 cat a00720398/data/Student.java 
package a00720398.data;


public class Student extends StudentDescriptor {

        public static StudentDescriptor newStudent() {
                return StudentDescriptor.newInstance();
        }

}
bcit@[EMAIL PROTECTED]
 



thanks,

Thufir
 




 11 Posts in Topic:
access levels for private field which is inherited
thufir <hawat.thufir@[  2008-04-13 10:01:29 
Re: access levels for private field which is inherited
Lothar Kimmeringer <ne  2008-04-13 12:38:52 
Re: access levels for private field which is inherited
Lew <lew@[EMAIL PROTEC  2008-04-13 07:41:05 
Re: access levels for private field which is inherited
Mark Space <markspace@  2008-04-13 09:37:03 
Re: access levels for private field which is inherited
"Larry A Barowski&qu  2008-04-13 17:16:24 
Re: access levels for private field which is inherited
Mark Space <markspace@  2008-04-15 17:09:33 
Re: access levels for private field which is inherited
Roedy Green <see_websi  2008-04-14 21:12:11 
Re: access levels for private field which is inherited
Roedy Green <see_websi  2008-04-14 20:56:51 
Re: access levels for private field which is inherited
thufir <hawat.thufir@[  2008-04-15 10:21:27 
Re: access levels for private field which is inherited
thufir <hawat.thufir@[  2008-04-15 23:06:17 
Re: access levels for private field which is inherited
Chase Preuninger <chas  2008-04-15 16:46:50 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat Nov 22 15:56:46 CST 2008.