1.C艹+语言的面向对象特征 2.其他问题 (6)类类型对象的动态转换机制 日 class Shape public: virtual O virtual void draw const =0 日 class ro1 lable public: virtual Rollable 横向转型成功 virtual void rollo=0 Shape pShape2=new Circle ass circle i public Shape, public Rollable( rollable pRollable2 cons t void rollo dynamic cast Rollable*>(pShape2 Eclass Square public Shape void draw const
1. C++语言的面向对象特征 2. 其他问题 – (6) 类类型对象的动态转换机制 //横向转型成功 Shape *pShape2 = new Circle(); Rollable *pRollable2 = dynamic_cast<Rollable*>(pShape2);
2.Java语言的面向对象特征 1.对象模型:封装 (1)访问控制机制: Java提供完善的访问控制机制,分别是: public protected、 friendly和 private 表3Java类中成员修饰符的访问权限 Java类中成员修饰符的访问权限 public protected friendly private 本类 本包 √ 子类 × 其他
2. Java语言的面向对象特征 1. 对象模型:封装 – (1) 访问控制机制: – Java提供完善的访问控制机制,分别是: public, protected、friendly和private。 Java类中成员修饰符的访问权限 public protected friendly private 本类 √ √ √ √ 本包 √ √ √ × 子类 √ √ × × 其他 √ × × × 表3 Java类中成员修饰符的访问权限
2.Java语言的面向对象特征 1.对象模型:封装 (2)对象的独立性: -Java中对象本身不具有独立性,也就是对象 必须属于某一个类; 3)类本身是不是对象? Java中类本身不是对象,对象是类的实例化; (4)基于类的模型,还是基于对象或原型的模型? Java是基于类的模型;
2. Java语言的面向对象特征 1. 对象模型:封装 – (2) 对象的独立性: – Java中对象本身不具有独立性,也就是对象 必须属于某一个类; – (3) 类本身是不是对象? – Java中类本身不是对象,对象是类的实例化; – (4) 基于类的模型,还是基于对象或原型的模型? – Java是基于类的模型;
2.Java语言的面向对象特征 1.对象模型:继承 (1)类层次结构:采用单根的类层次结构,还是 任意的类层次结构? Java采用单根的类层次结构; 单根层次结构:所有类是否都应从单独一个 基础类继承? 在Java中,对这个问题的答案都是肯定的, 而且这个终级基础类的名字很简单,就是 “ Object
2. Java语言的面向对象特征 1. 对象模型:继承 – (1) 类层次结构:采用单根的类层次结构,还是 任意的类层次结构? – Java采用单根的类层次结构; – 单根层次结构:所有类是否都应从单独一个 基础类继承? – 在Java中,对这个问题的答案都是肯定的, 而且这个终级基础类的名字很简单,就是 “Object
2.Java语言的面向对象特征 1.对象模型:继承 2)继承方式:提供哪些继承方式? Java只有普通的 extends继承方式; 5 class Person i 6 public Persono i 当创建一个类时,总是在继 8 承,如果没有明确指出要继 10 承的类,就总是隐式地从根 11 class Man extends Person i 1120 public Man()i 类 Object进行继承。 15 16
2. Java语言的面向对象特征 1. 对象模型:继承 – (2) 继承方式:提供哪些继承方式? – Java只有普通的extends继承方式; 当创建一个类时,总是在继 承,如果没有明确指出要继 承的类,就总是隐式地从根 类Object进行继承