class Person {String Title;String Name;Int Age;
public Person(String title, String name, String age) {this.Title = title;this.Name = name;this.Age = age;}
}
class Employee {Int Salary;private Person person;
public Employee(Person p, Int salary) {this.person = p;this.Salary = salary;}}
Person johnny = new Person ("Mr.", "John", 25);Employee john = new Employee (johnny, 50000);
class List {data = new Array();
Integer size() {return data.length;}
add(Integer anInteger) {data[data.length] = anInteger;}}
然后,我写整数集作为整数列表的子类:
class Set, inheriting from: List {add(Integer anInteger) {if (data.notContains(anInteger)) {super.add(anInteger);}}}
我们的Set of integers类是整数列表的子类,但不是子类型,因为它不满足List类的所有特性。方法的值和签名得到满足,但属性没有。add(Integer)方法的行为已经明显改变,没有保留父类型的属性。从类的客户端的角度思考。他们可能会收到一组整数,而需要一个整数列表。客户端可能希望添加一个值并将该值添加到List中,即使该值已经存在于List中。但是如果这个值存在,她就不会得到这种行为。这对她来说是一个很大的惊喜!