質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java ME

Java ME(Java Platform, Micro Edition)はリソースが制限されたデバイス(携帯電話、PDA、テレビなど)用につくられたJavaプラットフォームである。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

3950閲覧

アップキャストとダウンキャストについて

7ppm

総合スコア12

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java ME

Java ME(Java Platform, Micro Edition)はリソースが制限されたデバイス(携帯電話、PDA、テレビなど)用につくられたJavaプラットフォームである。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/01/09 01:39

class Parson{
String displayDetails(){
return "person";
}
}
public class student exends parson{
string displayDetails()
return "student";
}
public static void main (String [] args) {
Person obj = new Student (); //アップキャスト
Student obj1 = (student)obj; //ダウンキャスト
System.out.print(obj1.displayDetails());
}
}

このコードをコンパイル、および実行すると、どのような結果になりますか

A Parson
B student
C コンパイルに失敗
D 実行時に例外がスローされる !

この問いでは、DかBが正解と思われるのですか、ダウンキャスト時、明示的にキャストしているのでコンパイルエラーにはならないが、スーパ型の機能はサブクラス型は持ってないので、実行時に例外がスローされる。

もしくは、ダウンキャストしても、スーパークラス型の中にサブクラスのインスタンスを作ってたわけであって、機能するのはサブクラス型だから問題なく出力できる。よってB

どちらの理解のほうが正しいのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eripong

2016/01/09 01:50 編集

Parson だったりPersonだったりparsonだったりしていて、 確実にコンパイルに失敗すると思いますが、意図通りでは無いと思うので修正してください。他にもタイプミスと思えるところがあります。
izkn

2016/01/09 02:58

こちらの質問が他のユーザから「問題・課題が含まれていない質問」という評価を受けています teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。 質問の意図や解決したい課題を明確に記述していただくと、回答が得られやすくなります。
guest

回答1

0

続けて似たような質問を連続でされているようですが、質問する前に、なぜ、ご自分で試さないのでしょうか?

https://teratail.com/questions/24210
https://teratail.com/questions/24212
https://teratail.com/questions/24213

Javaをコンパイル・実行する環境がないのでしょうか?もし、Javaについて学びたければ、Javaをコンパイル・実行する環境を用意しないことには難しいです。まずは、Javaをコンパイル・実行できるようになることから始めて下さい。それができなければ、いくら机上でJavaを学んでも頭に入ってこず、無意味です。もし、何かしらの理由でパソコンにJDKを入れられないとか、スマホから書き込んでいると言う場合でも、オンラインコンパイラを使えます。下記のオンラインコンパイラを使ってご自分で試してみてください。

まずは、自分で確認し、その答えがなぜそうなるのかわからなければ、再度質問して下さい。

投稿2016/01/09 02:57

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

7ppm

2016/01/09 03:10

今javaのseブロンズ・シルバーの勉強をしてるのですが肝心なエクリプスの導入&日本語化がどうしても上手くいかず初歩的な段階で、すっころんでしまったので、実行できないのです。
7ppm

2016/01/09 03:11

paiza.ioに関しても、同じ記述で実行しても、なぜだかいつも必ずエラーになります。そして、そのエラーコードの解読が困難でして、後回しにしてしまってます。
raccy

2016/01/09 03:41

後回しにしても問題を先送りにするだけで意味がありません。まずは、なぜエラーなのか、どうしたらエラーがなくなるのかを目指して下さい。エラーコードがよくわからなければ、そのエラーコードを含めて質問してみて下さい。その場合も、エラーの意味自体がわからないのか、解決方法がわからないのか、ご自分がわからない点を具体的に示すと、回答者も回答しやすくなります。 なお、Windowsをお使いであれば、Pleiades All in Oneをお勧めします。 http://mergedoc.osdn.jp/pleiades_distros4.5.html 上記のJavaのFull Editionを使ってみて下さい。Eclipseの日本語化はバージョンによっては失敗する時がよくあるため、はじめから日本語化されたPleiadesだとその心配はほとんどありません。 もうひとつ、Eclipse以外にもNetBeansという優れたIDEがあります。Eclipseがどうしてもうまくいかないのであればこっちを使ってもいいかと思います。(ここら辺は好みによるため、どちらが優れているとかそういうことはないです) https://ja.netbeans.org/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問