Как запретить использовать неверно инициализированный объект в java
Допустим, есть такие классы:
class Parent {
int p1, p2;
public Parent(int p1, int p2){
this.p1 = p1;
this.p2 = p2;
}
public void printVars(){
System.out.printf("%d %d", p1, p2);
}
}
class Child extends Parent{
public Child(int p1, int p2){
super(p1, p2);
}
}
Но мне нужно, чтобы в случаях, когда p1 > p2 нельзя было пользоваться созданным объектом класса Child.
Т.е. при попытке сделать так:
public class Main {
public static void main(String[] args) {
Child child = new Child(2, 1);
child.printVars();
}
}
выдать ошибку, например.
Как это сделать ?
Ответы (1 шт):
Автор решения: oQaris
→ Ссылка
Обычно в таких случаях добавляют проверку в конструктор класса:
class Child extends Parent {
public Child(int p1, int p2) {
super(p1, p2);
if(p1 > p2)
throw new IllegalArgumentException("p1 was greater than p2");
}
}