① java類的繼承練習(一個小程序)
這就是多態的問題啦,子類繼承父類,那麼將子類對象的引用賦給父類對象,
你這里就是LX3_7_p sn=new LX3_8("aa",34,"bb","cc")將子類的引用賦給了父類,那麼這個引用現在能調用到子類重寫過的父類的方法以及父類的方法(這里我不知道該怎麼說了,就是這樣父類中有print()方法,子類中也就print()方法,並且返回類弄和參數都一樣的話,就是重寫了父類的方法,那麼這時候用sn可以調用到print()方法,但這個方法不是父類的而是子類的),
而不能調用到子類中沒有重寫父類的方法(這里父類方法為PIRNT(),子類方法為PRIN()),所以sn根本調用不到子類的方法prin()不報錯才怪
然後你將子類中的prin()改成print()這就相當於重寫了父類的方法,在用sn調用時父類的方法被告覆蓋,會調用到子類的print()方法.
不是引用出錯啦,只是現在這個sn調用不到子類的prin()方法,你如果用LX3_8產生一個對象調用prin()是不會出現這種問題的啦.
② java繼承與多態的題目求解答
publicclassPhoneDemo{
publicstaticvoidmain(String[]args){
Phonep1=newOldPhone();
Phonep2=newNewPhone();
show(p1);
System.out.println("
----------分割線-----------
");
show(p2);
}
privatestaticvoidshow(Phonep){
p.call();
p.message();
if(pinstanceofIplay){
((Iplay)p).game();
}
}
}
classPhone{
publicvoidcall(){
System.out.println("古董---Call....");
}
publicvoidmessage(){
System.out.println("古董---message....");
}
}
interfaceIplay{
publicvoidgame();
}
classOldPhoneextendsPhone{
}
{
publicvoidcall(){
System.out.println("時尚---Call....");
}
publicvoidmessage(){
System.out.println("時尚---message....");
}
publicvoidgame(){
System.out.println("望著農葯真好玩!");
}
}
③ java類的繼承題目
publicclassJurassic{
publicclassAnimal{
publicvoidact(){
System.out.println("這只動物在水裡洗了個澡");
}
}
{
@Override
publicvoidact(){
System.out.println("這只恐龍吃掉捕捉到的獵物之後在水裡洗了個澡!");
}
}
}
④ java繼承練習
這個太簡單了,
需求已經說的很詳細了,
只需按照要求來就可以了。
⑤ java繼承多態的練習題
Java繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。
java多態存在的三個必要條件:
1.需要有繼承關系的存在
2.需要有方法的重寫
3.需要有父類的引用指向子類對象
希望對你有幫助。
第一題應該選D,第二題選C,D。
第一題屬於多態,methodB()方法屬於子類,父類沒有重寫子類的方法
第二題屬於繼承,子類可以繼承父類的方法
⑥ JAVA有關繼承的練習題:
菜鳥的嘗試,如果有什麼錯誤和不妥,歡迎指出。
Public class child{
}
Public class error1 extends child(
érror1(){
}
Void testFail(){
}
}
Public class error2 extends child(
érror2(){
}
Void steals(){
}
}
Public class parents{
parents(){
}
Public static void print(child error){
If(error instanceof error1){
Print("談心")
}
If(error instanceof error2){
Print("挨打")
}
}
Public static void main (string[] args){
Parents parent= new parents();
Error errora1 = new error1();
Error errora2 = new error2();
Parent.print(errora1);
Parent.print(errora2);
}
大概就這樣了,純手機敲出來的,很多語法不對,
但是看下思路還是看出來的。
請採納答案,支持我一下。
⑦ 關於JAVA繼承類的一道筆試題
構造函數都是先執行構造 再執行其他的.像你的class X 你去用無參構造器new一個X時,他會先調用你重寫的無參構造器,如果自己沒寫jvm會去調用默認的,默認的無參數構造器是默認就存在的不論你寫不寫.執行構造函數時他會先執行你構造方法的代碼,執行完成後才會去執行其他方法 去生成這個類的屬性 執行靜態代碼塊,class X中的 Y b=new Y(); 這段代碼你放哪裡其實只是聲明了一個X的成員變數而已,放哪裡執行順序都是一樣的
⑧ java子類和父類繼承題
SonArr.java
public class SonArr extends FatherArr{
public SonArr(int n) {
super(n);
}
public static void main(String[] args) {
SonArr s=new SonArr(5);
s.setArr();
s.printArr();
System.out.println("數組和"+s.getSum());
System.out.println("最大值"+s.getMax());
}
int getMax(){
int max=a[0];
for(int i=1;i<a.length;i++){
if(max<a[i]){
max=a[i];
}
}
return max;
}
int getSum(){
int sum=0;
for(int i:a){
sum+=i;
}
return sum;
}
}
FatherArr.java
import java.util.Scanner;
public class FatherArr {
int n;
int[] a;
public FatherArr(int n) {
this.n=n;
a=new int[n];
}
void setArr(){
Scanner sc=new Scanner(System.in);
for(int i=0;i<n;i++){
System.out.print("輸入:");
a[i]=sc.nextInt();
}
}
void printArr(){
for(int i:a){
System.out.print(i+" ");
}
}
}