本文目錄一覽:
java 多態里的些錯誤
一個Java文件中有且只能有一個public修飾的類
第一個錯誤:
public static void main(String[] args)所在的那個類為主類,就是用public修飾的類
第二個錯誤
public void draw(){
System.out.println(“Square.draw()”);
public void p(){
System.out.println(“here is Triangle”);
}
}
你在draw()方法中又寫了一個p()方法,這是不行的,方法可以調用方法,但不可以嵌套方法。這個應該是書寫錯誤,所以提示你非法的表達式開始
第三個:
case 0 : return new Circle();
case 1 : return new Square();
case 2 : return new Triangle();
你那個Circle類是哪裡來的?還有那個Triangle類是哪裡的,所以會提示找不到符號
第四個:
System.out.println(“here”) 這一句沒有用分號結束
第五個:
switch(rand.nextInt(3)){
default:
case 0 : return new Circle();
case 1 : return new Square();
case 2 : return new Triangle();
}
default以後什麼也沒有,在這裡就是什麼也不做.沒有break語句,所以如果產生的值是0的話,那麼下面那兩個語句也會被執行。
樓主可以參考這些改進一下自己的程序!
下面是修改以後的示例代碼,你可以自己完善一下
import java.util.*;
class Shape
{
public void draw(){}
public void p()
{
System.out.println(“here”);
}
}
class Square extends Shape
{
public void draw()
{
System.out.println(“Square.draw()”);
}
public void p()
{
System.out.println(“here is Triangle”);
}
}
class RandomShapeGenerator{
Square obj;
private Random rand = new Random(47);
public Shape next()
{
switch(rand.nextInt(3))
{
default: System.out.println(“OK”);
//case 0 : return new Circle();break;
case 1 : obj=new Square();break;
//case 2 : return new Triangle();break;
}
return obj;
}
}
public class Shapes
{
private static RandomShapeGenerator gen = new RandomShapeGenerator();
public static void main(String[] args)
{
Shape[] s = new Shape[9];
for(int i = 0;is.length;i++)
s[i] = gen.next();
for(Shape shp : s)
{
shp.draw();
shp.p();
}
}
}
Java中多態的優缺點是什麼?
多態的好處:擴展性強,父類的變數可以賦值不同的子類對象,而調用不同的子類重寫的方法
多態的弊端:不能使用子類特有的功能
這就是Java多態的優缺點了,想學習Java,自學看黑馬程序員,有視頻,有學習路線,讓你學習不迷茫!
請教 Java中多態的缺點?
多態主要體現在方法重載和方法的重寫上,一般來說,多態的出現是為了彌補之前單一的方法調用,覺得就是為了方便擴展而出現的,如果你抹掉不用,就沒有優缺點可言了。如果多態發揮的盡情的話,對於學習它或是使用它的人來說,是比較容易混淆的(因為只有開發人員才知道各個方法的具體用途),但可以減少很多冗餘代碼~~一般越高級的程序,對某一特性就發揮的越淋漓盡致!
原創文章,作者:QXOPO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/313475.html