Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #27262
| X-Received | by 10.43.44.136 with SMTP id ug8mr1651153icb.17.1389293314885; Thu, 09 Jan 2014 10:48:34 -0800 (PST) |
|---|---|
| X-Received | by 10.49.27.168 with SMTP id u8mr10926qeg.25.1389293314689; Thu, 09 Jan 2014 10:48:34 -0800 (PST) |
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!newshosting.com!news-out.readnews.com!news-xxxfer.readnews.com!209.85.216.87.MISMATCH!p15no5127222qaj.0!news-out.google.com!fv6ni1437qab.1!nntp.google.com!p15no5127215qaj.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail |
| Newsgroups | comp.lang.java.programmer |
| Date | Thu, 9 Jan 2014 10:48:34 -0800 (PST) |
| Complaints-To | groups-abuse@google.com |
| Injection-Info | glegroupsg2000goo.googlegroups.com; posting-host=77.251.156.172; posting-account=tRhYkQoAAAC4mfP99Qw2QppE0qHeI37Z |
| NNTP-Posting-Host | 77.251.156.172 |
| User-Agent | G2/1.0 |
| MIME-Version | 1.0 |
| Message-ID | <5dfabbeb-9201-488d-b56b-e1cef3913c92@googlegroups.com> (permalink) |
| Subject | question about casting and inheritance |
| From | marc.at.compass@gmail.com |
| Injection-Date | Thu, 09 Jan 2014 18:48:34 +0000 |
| Content-Type | text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding | quoted-printable |
| X-Received-Bytes | 2625 |
| X-Received-Body-CRC | 4046410031 |
| Xref | csiph.com comp.lang.java.programmer:27262 |
Show key headers only | View raw
Hello,
I'm preparing for Java 7 OCA exam. I have a q about casting..
I learned you can cast a variable of a class to another object only if there's a hierarchical relation between the variable's class _and_ the object's class you cast to. And also, the varibla should point to an object og the class you're casting to or you get a ClassCastException during runtime.
So I made up this example:
class A {
String uniqueMethodForA(){
return ("uniqueMethodForA");
}
}
class B extends A {
String uniqueMethodForB(){
return ("uniqueMethodForB");
}
}
public class LearnJava{
public static void main(String[] args) throws Exception {
LearnJava LJ = new LearnJava();
A a = new A();
B b = new B();
System.out.println(a.uniqueMethodForA());
System.out.println(b.uniqueMethodForB());
a=b;
b=(B)a;
System.out.println("=============");
System.out.println(a.uniqueMethodForA());
System.out.println(b.uniqueMethodForB());
}
}
outputs:
uniqueMethodForA
uniqueMethodForB
=============
uniqueMethodForA
uniqueMethodForB
As you see variable a points to an instance of A and not to (an instance of) B. I effectively say "treat a as if it is b". I can even call a method on b that is unique for B. But a didn't point to an instance of B in the first place at all!
Why is it the line b=(B)a; doesn't give me a ClassCastException during runtime?
Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread
question about casting and inheritance marc.at.compass@gmail.com - 2014-01-09 10:48 -0800
Re: question about casting and inheritance leif.roar@invalid.com (Leif Roar Moldskred) - 2014-01-09 13:03 -0600
Re: question about casting and inheritance Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-01-09 14:07 -0500
Re: question about casting and inheritance markspace <markspace@nospam.nospam> - 2014-01-09 13:00 -0800
Re: question about casting and inheritance Ricardo Palomaes <rpmdisguise-java@nowhere.com> - 2014-01-09 23:24 +0100
Re: question about casting and inheritance Ricardo Palomares <rpmdisguise-java@nowhere.com> - 2014-01-12 12:20 +0100
Re: question about casting and inheritance Patricia Shanahan <pats@acm.org> - 2014-01-10 03:04 -0800
Re: question about casting and inheritance Arved Sandstrom <asandstrom2@eastlink.ca> - 2014-01-11 09:38 -0400
Re: question about casting and inheritance Roedy Green <see_website@mindprod.com.invalid> - 2014-01-10 16:36 -0800
Re: question about casting and inheritance marc.at.compass@gmail.com - 2014-01-11 08:01 -0800
csiph-web