第5章继承与多态 ■第四章已经有论及,抽象性、封装性、继承性和多态性称 为面向对象的四大特性。通过前面的学习,对前两个特性有 了一定程度的理解,本章将继续探讨后两个特性,即继承性 和多态性
◼第四章已经有论及,抽象性、封装性、继承性和多态性称 为面向对象的四大特性。通过前面的学习,对前两个特性有 了一定程度的理解,本章将继续探讨后两个特性,即继承性 和多态性。 第5章 继承与多态
本章要点 ■类的继承; ■类成员的隐藏与重载; ■多态性; ■ Object类和cas类; 抽象类与接口; 对象克隆; ■对象转型和类的设计原则
◼类的继承; ◼类成员的隐藏与重载; ◼多态性; ◼Object类和 Class类; ◼抽象类与接口; ◼对象克隆; ◼对象转型和类的设计原则 本章要点
51类的继承 ■]ava中的继承分类的继承和接口的继承两种,类 的继承只支持单继承;而接口的继承可以是多重继 承
◼Java中的继承分类的继承和接口的继承两种,类 的继承只支持单继承;而接口的继承可以是多重继 承。 5.1 类的继承
51类的继承—子类的定义 子类的定义子类也是类 它的定义形式与一般类的定义形式极其相似,其格式为: I Modifiers] class Sub className extends SuperclassName d//classBody 其中, Modifiers是修饰符,可以使用的修饰符与前一章中所 介绍的一样; SubClassName是子类的名称; extends是用于 实现继承的关键字,当类的定义中有 extends关键字时,表 示当前定义的类继承于别的类,是别的类的子类; SuperClassName是父类名; Classbody是子类的类体
[Modifiers] class SubClassName extends SuperClassName { //ClassBody } ▪子类的定义子类也是类。 它的定义形式与一般类的定义形式极其相似,其格式为: 其中,Modifiers是修饰符,可以使用的修饰符与前一章中所 介绍的一样;SubClassName是子类的名称;extends是用于 实现继承的关键字,当类的定义中有extends关键字时,表 示当前定义的类继承于别的类,是别的类的子类; SuperClassName是父类名;ClassBody是子类的类体。 5.1 类的继承——子类的定义
51类的继承—子类的定义示例 class Point∥/点类 protected int x,y;//点坐标 public Point(t //无参构造方法 public Point(int xx, int yytsetPoint(xx, yyi public void setPoint(int m, int n){x=my=n}/设置标位置 public int getxotreturn X;] public int getYotreturn yi] 继承于点 类的圆类 class Circle extends point//定义圆类 private double radius / radius为圆的半径 public Circle(int x,int y, double r)this x=X; thisy=y; setRadius(r)il public void setRadius( double r) radius=r;}//设置圆的半径 public double getRadiuso{ return radius}//获取圆的半径 public double getAreaotreturn3.1415* radius* radius;//获取圆 的面积
class Point{ //点类 protected int x,y; //点坐标 public Point(){} //无参构造方法 public Point(int xx,int yy){setPoint(xx,yy);} public void setPoint(int m,int n){x=m;y=n;} //设置标位置 public int getX(){return x;} public int getY(){return y;} } class Circle extends Point{ //定义圆类 private double radius; //radius为圆的半径 public Circle(int x,int y,double r){this.x=x;this.y=y;setRadius(r);} public void setRadius(double r){radius=r;} //设置圆的半径 public double getRadius(){return radius;} //获取圆的半径 public double getArea(){return 3.1415*radius*radius;} //获取圆 的面积 5.1 类的继承——子类的定义示例 继承于点 类的圆类