Теперь я знаю, что нельзя инициировать абстрактный класс. Но я читал в java.lang.NullPointerException, о котором говорят люди, вызванные полями, все еще указывающими на null. Я инициализировал унаследованные методы суперкласса через ComputerPart, но я все еще получаю сообщение об ошибке. Я принимаю онлайн-классы, поэтому ваш вклад очень ценится. Спасибо.java lang NullPointerException с использованием абстрактного класса?
abstract class Product {
protected float price;
public static int i = 0; // to keep count starts at zero
protected static int ID ; // to update and keep track of ID even if i changes
// return the price of a particular product
abstract float price();
}
//------------------------------------------------------------
class ComputerPart extends Product {
public ComputerPart(float p) {
i += 1; // each time constructor invoked ,
ID = i; // to update ID even if i changes.
price = p;
}
public float price() { return price; }
// a getter method so ID can be nicely formated and returned
public static String getID(){
String Identification = "ID#" + ID;
return Identification;
}
}
//------------------------------------------------------------
import java.util.*;
public class GenericOrder <T extends Product> {
ArrayList<Product> genericOrder;
public String comPrice(float comPrice){
genericOrder.add(new ComputerPart(comPrice));
String s;
s="Computer Part, Price=$ "+comPrice;
return s;
}
}
И мой тестовый класс
GenericOrder gen = new GenericOrder<Product>();
gen.comPrice(0);
Укажите код, в котором поднимает 'NullPointerException'. –
Вы никогда не инициализируете 'genericOrder' –
genericOrder.add (новая ComputerPart (comPrice)); это строка из класса GenericOrder –