51类的继承—子类的定义示例 public String toString i return"Position (+X++y+ Radius="+radius; y } public class CircleTestt public static void main( String[] args Circle c=new Circle(50, 50, 10); System. out println(c toString); CsetPoint(100, 100) CsetRadius(20); System. out printin(c tostring); } 例中,定义了三个类 Point、 Circle和 ircleTest。 Circle继承于 Point类 Point类是父类,Cide是子类,它们的UML图及相互关系如图5.1所示。 而 CirdleTest类用于对 Circle作一简单测试
public String toString() { return"Position("+x+","+y+")Radius="+radius;} } public class CircleTest{ public static void main(String[] args){ Circle c=new Circle(50,50,10); System.out.println(c.toString()); c.setPoint(100,100); c.setRadius(20); System.out.println(c.toString()); }} 5.1 类的继承——子类的定义示例 例中,定义了三个类Point、Circle和CircleTest。Circle继承于Point类, Point类是父类,Circle是子类,它们的UML图及相互关系如图5.1所示。 而CircleTest类用于对Circle作一简单测试
51类的继承—子类的定义示例 Point tx: int ty int +Point +Point (int, int) +setPoint(int, int): void getxo:in +getO: int 图51 Circle -radius double +Circle(int, int, double) +setRadius (double): void +getRadiuso: double +getAreao: double +to string o: string
5.1 类的继承——子类的定义示例 图5.1
51类的继承—子类的构造方法 在子类的定义示例有这样一条语句: public Point{}/无参构造方法 Java中,在执行子类的构造方法时,必须先执行父类的构造 方法,它的第一条语句必须是调用父类的构造方法的语句。 调用父类的构造方法是通过语句 super(来完成的。如果要调 用父类的有参构造方法,则在 super(的圆括号中加入所需的 参数 当在子类的构造方法中通过 super()来调用父类的构造方法时 如果不带参数,则这样的显式调用可以省略,它调用父类的 构造方法是由系统自动进行的。但是,此时,如果父类中没 有显式定义无参的构造方法,则编译出错
在子类的定义示例有这样一条语句: 5.1 类的继承——子类的构造方法 public Point(){} //无参构造方法 Java中,在执行子类的构造方法时,必须先执行父类的构造 方法,它的第一条语句必须是调用父类的构造方法的语句。 调用父类的构造方法是通过语句super()来完成的。如果要调 用父类的有参构造方法,则在super()的圆括号中加入所需的 参数。 当在子类的构造方法中通过super()来调用父类的构造方法时, 如果不带参数,则这样的显式调用可以省略,它调用父类的 构造方法是由系统自动进行的。但是,此时,如果父类中没 有显式定义无参的构造方法,则编译出错
52类成员的隐藏与重载 通过类的继承,子类继承了父类的成员,同时 在子类中还可以添加一些新成员。但是,当在 子类中添加的成员与父类中的成员同名时,系 统如何处理这样的冲突呢?本节主要探讨这个 问题
◼ 通过类的继承,子类继承了父类的成员,同时 在子类中还可以添加一些新成员。但是,当在 子类中添加的成员与父类中的成员同名时,系 统如何处理这样的冲突呢?本节主要探讨这个 问题。 5.2 类成员的隐藏与重载
52类成员的隐藏与重载—类成员的继承 通过继承,子类继承了父类中除构造方法以外的所有成员,这些 成员称为子类的继承成员。继承成员不仅包括在超类中定义的公 有( public)、受保护( protected)及私有成员( private),还 包括超类的继承成员。但是在子类中,只能直接引用父类中用 public或 protected修饰的成员,父类中用 private修饰的成员在子 类中不可直接引用,因为它们受访问属性的控制 使用子类的程序能访问子类的公有继承成员,但不能访问子类的 受保护和私有的继承成员。子类的内部能访问它自己定义的所有 成员,在程序中,只能访问子类自己定义的公有成员,而不能访 问子类自己定义的受保护和私有成员
◼ 通过继承,子类继承了父类中除构造方法以外的所有成员,这些 成员称为子类的继承成员。继承成员不仅包括在超类中定义的公 有(public)、受保护(protected)及私有成员(private),还 包括超类的继承成员。但是在子类中,只能直接引用父类中用 public或protected修饰的成员,父类中用private修饰的成员在子 类中不可直接引用,因为它们受访问属性的控制。 ◼ 使用子类的程序能访问子类的公有继承成员,但不能访问子类的 受保护和私有的继承成员。子类的内部能访问它自己定义的所有 成员,在程序中,只能访问子类自己定义的公有成员,而不能访 问子类自己定义的受保护和私有成员。 5.2 类成员的隐藏与重载——类成员的继承