在面向对象的学习中,对于重载和重写我头疼了好一阵,现在稍微明白了。发表一下个人理解,望大神指点错误!
对于构造函数的重载,其实就是对构造函数的初始化,用个例子表示:
public class Test{
String name;
int age;//此为函数定义的变量
public Test(String name1,int age1){//形式上引入两个变量,注意构造函数没有返回值类型,实例化类的时候会提示输入这两个变量
this.name=name1;//讲引入的两个变量name1和age1赋值给原类的变量name和age实现该类中的变量初始化
this.age=age1;
}
}
可以看出,我们可以通过构造函数的重载来初始化类中的变量。同理,方法的重载类似,主函数中通过实例化对象来实现赋值。这只是学到的重载的一个功能,是否还有其他功能还需要继续学习了。
重写,发生在子类和父类之间。子类继承父类的方法后,想改变这个方法的功能,就可以重写该方法。具体形式:函数名相同,需要的参数相同,但实现的方法不同。调用父类的属性和方法可以用super.**;来实现。例子:
若父类的一个方法为:
public void Show(){
System.out.println("hello world!");
}
子类重写方法,可写成:
public void Show(){
//里面的方法按需要写,但所用变量和父类该方法一致
}
大体内容就这样了。