php 方法重写和多态的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 方法重写和多态的区别相关的知识,希望对你有一定的参考价值。

重写是多态实现方法的一种,多态的实现方法包括但不局限于重写,二者不是并列关系!多态是一种思想,重写是一种方法!
换句话说,只会执行子类,不会执行父类。如果一定要执行父类,那么就要用到关键词parent。
参考技术A 要注意的地方

java实现多态 方法的重写和重载的区别

1.方法的重写

思路:先写一个父类People,在类中定义一个 print方法 ,然后写一个子类 Student 继承父类,重写print方法。

//父类

class People{

  public void print(){
    System.out.println("这是父类的print方法!");

  }

}

//子类 继承父类

class Student extends People{
  public void print(){

    System.out.println("这是子类的print方法!");  

  }

}

//测试类

public class Test{

  Student t=new Student(); 生成子类的对象

  t.print(); //子类对象 调用print方法

}

运行结果: 这是子类的print方法!

分析:子类继承父类后重写父类的方法,子类对象调用时,调用的是子类的print方法。

重点: 方法的重写,不改变方法的 返回值类型,参数列表;改变的只是方法中的内容,这是重写。

备注:方法重写后,可用super.方法名();调用父类中未被重写的方法。

 

2.方法的重载

思路:先写一个父类People,在父类中定义多个方法名print相同,但参数列表或返回值类型不同的方法;子类继承People类。重载这些方法。

public class People {
String name; 
int age;
void print(){ 
System.out.println("姓名:" +name+"年龄:" +age); 
}
void print(String a,int b){ 
System.out.println("姓名:" +a+"年龄:"+b); 
void print(String a,int b,intC){ 
System.out.println("姓名:"+a+"年龄:" +b+"ID号:" +c); 
}
void print(String a,int b,doubleC){ 
System.out.println("姓名:"+a+"年龄:" +b+"ID号:"+c); 

}

public class Test{
publicstaticvoidmain(String args[]) 
{Personpl=newPerson();
p1.nanle="李明";
p1.age=22;
p1.print(); 
p1.print("王小早",19); 
p1.print("金波",18,100325); 
p1.print("婉宁",25,110903); 

}

运行结果:

姓名:李明年龄:22
姓名:王小早年龄:l9
姓名:金波年龄:18ID号:10 00325
姓名:婉宁年龄:25ID号:110903

分析:方法的重载,只要方法名相同,返回值类型和参数列表可以不痛。子类继承父类时,可根据返回值类型 和 参数列表的异同,来决定调用重载的哪个方法。
































以上是关于php 方法重写和多态的区别的主要内容,如果未能解决你的问题,请参考以下文章

java中重载,继承,重写和多态的区别

重写和重载的区别

java实现多态 方法的重写和重载的区别

重写覆盖重载多态几个概念的区别分析

请简述重载和重写的区别

40-重载和重写的区别?