Objects in Python are pretty much like Python dictionaries. You can treat each instance Testand Subclassas a dictionary, which is updated code __init__and assignments in the body of the declared class. You can imagine the code you wrote as follows:
class Test(object):
item = 0
def __init__(self):
print(self.item)
def test(self):
print(self.item)
class Subclass(Test):
item = 1
s = Subclass()
s.test()
Python duck-typing, item - , . , - . "" , . , , , item in Subclass item Test; , Python.
Java . , int item: Test Subclass. int item Subclass, . . Java : 3.4.5. .
, , Java:
public class Test {
private int item;
public Test() {
this(0);
}
public Test(int item) {
setItem(item);
test();
}
public void test() {
System.out.println(getItem());
}
public static void main(String[] args) {
Subclass s = new Subclass();
s.test();
}
public void setItem(int item) {
this.item = item;
}
public int getItem() {
return item;
}
}
class Subclass extends Test {
public Subclass() {
super(1);
}
}
, item , . , item - private, getter setter . Java.
, IDE (, Eclipse IntelliJ) . , , Scala, .
Edit:
, , . , , , - , Python:
public class Test {
}
class Subclass extends Test {
private int subclassItem = 1;
public int getItem() {
return subclassItem;
}
public void setItem(int item) {
this.subclassItem = item;
}
}
item , getter setter, , . 0 1 , 1 1, .
, , . , this , , .