JAVA封装、继承与多态.ppt
文本预览下载声明
* * * * * * * * * * * * * * * * * * * * * * * * 2021/2/11 * 私有变量是无法继承的 x 尽管是不被B继承的,但是B仍旧可以通过继承方法f()来操作x. 2021/2/11 * 2021/2/11 * 成员变量隐藏 当子类中定义的成员变量只要和父类中的成员变量同名时,子类就隐藏了继承的成员变量。 2021/2/11 * 父类中操作的变量仍旧是父类的成员变量. 2021/2/11 * 方法重写 子类可以隐藏已继承的方法,子类通过方法重写来隐藏继承的方法。 方法重写:定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同。 子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。 2021/2/11 * 子类继承父类的speak()方法和cry()方法,但子类通过重写speak()隐藏了继承的speak()方法。 在cry方法中调用speak方法,调用的哪一个? 2021/2/11 * 2021/2/11 * Super操作被隐藏的成员 如果子类和父类的成员变量同名时,子类就隐藏了从父类继承的成员变量。当子类定义一个方法,并且这个方法的名字、返回类型,参数个数和类型与父类的某个方法完全相同是,子类从父类继承的这个方法将隐藏。 我们要调用父类隐藏的成员,我们可以使用super: super.成员变量; super.成员方法; 2021/2/11 * 2021/2/11 * 2021/2/11 * 2021/2/11 * 下列那个选项插入第八行,编译不会通过 A.public float getNum{return 4.0f} B.public void getNum(){} C.public void getNum(double d){} D.public void getNum(float d){return 4.0d;} 2021/2/11 * Resutl? 2021/2/11 * 以上J_superclass中的构造方法,调用mb_add是调用子类的,操作的m_data是父类的。 2021/2/11 * final关键字 可以修饰变量(常量) 可以修饰方法 (不能被重写) 可以修饰类(不能再被继承) 2021/2/11 * 2021/2/11 * 2021/2/11 * super java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。使用场合: 访问父类被隐藏的成员变量,如:super.variable 调用父类中被重写的方法,如:super.Method([paramlist]); 调用父类的构造函数 ,如:super([paramlist]); 2021/2/11 * class Person { public int c; private String name; private int age; protected void setName(String name){ this.name=name; } protected void setAge(int age){ this.age=age; } protected void print(){ System.out.println(姓名:+name+,年龄:+age); } } public class DemoSuper extends Person { public void print(){ super.print(); //调用父类的方法print } public static void main(String[] args){ DemoSuper ds=new DemoSuper(); ds.setName(张三); ds.setAge(22); ds.print(); //调用子类的print方法 } } 示例 2021/2/11 * 4.3 类的多态 多态:是指一个程序中存在着同名不同实现的方法 作用: 同一接口,不同的实现 如:System.out.println(/*各种类型的数据*/)方法 进一步隐藏对象内部的实现细节,简化程序设计的复杂度 表现形式: 重载:即在同一类中定义多个同名的不同方法。 覆盖:子类中对父类方法进行重写(重新定义),但具体实现不一样 2021/2/11 * 多态性 父类 子类 - 绘制和移动三角形 子类 - 绘制和移动矩形 子类 - 绘制和移动五边形 Shape Draw () Move () Triangle Draw () { DrawTraingle } Move () {
显示全部