第十八讲-多态

1.对于父类的属性,子类都继承下来了。

2.对于父类的方法,子类也都继承下来了。

3.父类有的,子类也有,但子类可以改变。子类对继承下来的方法可以覆盖掉(重写overwrite)。子类对象再次调用这个方法时,就是调用子类的方法而非父类的。

4.方法覆盖原则:

a)首先要存在继承

b)对父类继承下来的方法进行重写。要求同名同参同返回值,权限不能过低

5.多态基于

a)向上转型。父类引用指向子类对象。

b)方法覆盖


class Animal{

public void run(){ System.out.println("animal is  running")}

}


class Dog extends Animal{

public void run(){System.out.println("dog is running");}

}


class Test{

public static void main(String args[])

{

Animal animal = new Dog();//多态--向上转型

animal.run();//多态--方法覆盖

}

}



这个例子中,Dog中的run覆盖了Animal中的run。


这样,覆盖后就不允许调用父类被覆盖的方法。但是,java提供一种调用父类被覆盖方法的机制:super.run();

class Animal{

public void run(){ System.out.println("animal is  running")}

}


class Dog extends Animal{

public void run(){

super.run();//调用父类的run

System.out.println("dog is running");

}

}


注意:super.run()可以放在任意行上。因为这个方法只是普通方法,调用之前父类对象已经存在。


6.如果一个类没有指定父类,那么这个类就继承与java.lang.Object类。它是java体系的最顶层类。


你可能感兴趣的:(重拾javaSE-看圣思园视频)