第四章继承和多态
第四章 继承和多态
继承和多态4.1继承基础4.2构造器的调用顺序14.3继承还是组合?4.4Object类14.5toString方法14.6对象的比较
继承和多态 ◼ 4.1继承基础 ◼ 4.2构造器的调用顺序 ◼ 4.3 继承还是组合? ◼ 4.4 Object类 ◼ 4.5 toString方法 ◼ 4.6 对象的比较
4.1继承基础类与类之间还有一种父与子的关系,子类继承父类方法与属性,这个我们就称之为继承子类拥有父类的一些公有的属性和方法,并且子类可能也会有自己的方法和属性除了添加父类中没有的新方法外子类还可以通过重写父类的方法来重定义自已的行为方式
4.1继承基础 ◼ 类与类之间还有一种父与子的关系,子类继承父类方 法与属性,这个我们就称之为继承 ◼ 子类拥有父类的一些公有的属性和方法,并且子类可 能也会有自己的方法和属性 ◼ 除了添加父类中没有的新方法外子类还可以通过重写 父类的方法来重定义自己的行为方式
继承基础重写与重载不同,重载需要不同的参数来区别相同方法名的方法,重写是发生在子类与父类上,重写父类方法必须与父类的方法名同名同参并且同返回值。当访问修饰符为private时,表明该方法不能被重写,同样当方法具有final关键字时该方法不能被重写。子类虽然重写了父类的某个方法,但仍然需要用到父类的这个方法,这时使用super关键字仍然可以调用父类的方法。程序4.1TestExtends.java示例继承机制
继承基础 ◼ 重写与重载不同,重载需要不同的参数来区别相同方 法名的方法,重写是发生在子类与父类上,重写父类 方法必须与父类的方法名同名同参并且同返回值 。 ◼ 当访问修饰符为private时,表明该方法不能被重写, 同样当方法具有final关键字时该方法不能被重写 。 ◼ 子类虽然重写了父类的某个方法,但仍然需要用到父 类的这个方法,这时使用super关键字仍然可以调用父 类的方法 。 程序4.1 TestExtends.java示例继承机制
程序4.2TestOstrich.javapublicclassTestOstrichpublic static void main(String[] args) Birdostrich1=newOstrich();//向上转型ostrich1.fly();21class Bird public static void flyOKSystem.out.println("Bird Flying!");1人class Ostrich extends Birdkpublic static void flyOSystem.out.println("I can't fly!");17输出结果:BirdFlying!
程序4.2 TestOstrich.java public class TestOstrich { public static void main(String[] args) { Bird ostrich1 =new Ostrich(); //向上转型 ostrich1.fly(); } } class Bird { public static void fly(){ System.out.println("Bird Flying!"); } } class Ostrich extends Bird{ public static void fly(){ System.out.println("I can't fly!"); } } 输出结果:Bird Flying!