多态
多态:
概念:同一类型(父类做类型),调用相同方法,不同实现
好处:有利于程序的扩展
实现步骤:
1:在父类中编写方法
2:在子类中重写父类的方法
方法重写:在子类中 去重写父类的方法
子类中重写的方法和父类中被重写的方法方法头相同
3:在使用时父类做类型,实际赋值的是子类对象
class teacher public void teach(){ } class javateacher extends teacher public void teach(){
//重写父类的方法 system.out.print("教java") } class phpteacher extends teacher public void teach(){ system.out.print("教jphp") } public static void main(){ teacher te = new teacher; te.teacher() //根据传递的参数是java的还是php的实现子类对父类重写后的方法 }
实现多态有哪些方法:
1:重载 静态方式实现多态,在编译过程中就已经确定了重载的方法
2:重写 动态方式实现多态,在运行时采取覆盖,编译时没有覆盖父类的方法
子类继承了父类中的哪些成员:
|
同类中 |
同一个包(没父子类关系) |
不同包(有父子类关系) |
不同包也没有父子关系 |
private |
Y |
N |
N |
N |
默认 |
Y |
Y |
N |
N |
protected |
Y |
Y |
Y |
N |
public |
Y |
Y |
Y |
Y |
Father fa = new Son() 父类的引用指向子类对象
fa.父类里的成员