Trying to understand the inheritance/interface here(java)

  • Context: Comp Sci 
  • Thread starter Thread starter Arnoldjavs3
  • Start date Start date
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 2K views
Arnoldjavs3
Messages
191
Reaction score
3

Homework Statement


Java:
package movable;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author
*/
public class Group implements Movable {
private final List<Movable> groups = new ArrayList<Movable>();
public void addToGroup(Movable movable) {
groups.add(movable);
}
@Override
public void move(int dx, int dy) {
for (Movable org : groups) {
org.move(dx, dy);
}
}
@Override
public String toString() {
String group = "";
for (Movable org : groups) {
group += org.toString();
group += '\n';
}
return group;
}
}

Java:
package movable;
/**
*
* @author
*/
public class Organism implements Movable {
private int x;
private int y;
public Organism(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "x: " + this.x + "; " + "y: " + this.y;
}
@Override
public void move(int dx, int dy) {
this.x = this.x + dx;
this.y = this.y + dy;
}
/*
//return the x value
public int xValue(){
return this.x;
}
//return y value
public int yValue(){
return this.y;
}
*/
}

Java:
package movable;
public interface Movable {
void move(int dx, int dy);
}

Homework Equations

The Attempt at a Solution


Here in this sample code(not mine) there is this object organism that implements the interface movable here. Object group, is just another arraylist of movable objects(which organism implements). My question is, why can this code access the x and y values of the movable objects inside the group arraylist? The instance variables x and y are defined in the organism class, not the group. Does this suggest that the group object is inheriting out of the organism class?
 
Physics news on Phys.org
Arnoldjavs3 said:
My question is, why can this code access the x and y values of the movable objects inside the group arraylist? The instance variables x and y are defined in the organism class, not the group. Does this suggest that the group object is inheriting out of the organism class?
Please be more specific. "Why can this code ... " -- which code are you referring to?
 
  • Like
Likes   Reactions: Arnoldjavs3
group += org.toString()

this line will access the x and y positions of the movable objects inside group.

Edit: made a misunderstanding. Since group is just an arraylist of movable objects, organisms can be stored into the group object. Essentially I thought any movable object inside group had access to organism's instances varibables through inheritance but this is not the case.

Solved my own misunderstanding lol