
重载是同一个类中,方法名字相同, 但是形参的类型,个数,顺序不同, 不要求返回值类型相同,方法名只和形参列表有关,与修饰符无关

重写是在不同类中,子类对父类提供的方法不满意,对父类的方法进行重写。要求两个方法名字相同, 同时参数的类型和个数,顺序,返回值类型相同,但是返回值如果为协变类型,就是父类与子类也可以的
重写举例
class Shape{
public void draw(){
}
}
class Flower extends Shape{
@Override
public void draw() {
System.out.println("hua");
}
}
class square extends Shape{
@Override
public void draw() {
System.out.println("zheng");
}
}
public class Test {
public static void drawmap(Shape shape){
shape.draw();
}
public static void main(String[] args) {
drawmap(new Flower());
Shape shape1=new square();
shape1.draw();
}
}

super修饰属性和方法


super修饰构造器

super调用父类的属性

super调用父类方法
父类:

子类:



多态:
多态跟属性无关,多态指的是方法的多态,而不是属性的多态。

涉及到动态绑定:
通过父类的引用,调用父类和子类的同名覆盖方法和向上转型:父类引用指向子类对象
Pig p = new Pig ( ) ;
Animal an = p;
//将上面的代码合为一句话:
Animal an = new Pig();
//=左侧:编译期的类型
//=右侧:运行期的类型
Pig p=new Pig();
Animal an = p;//转型:向上转型
//将Animal转为Piq类型:
Pig pig =(Pig)an ;//转型:向下转型
不仅可以使用父类做方法的形参,还可以使用父类做方法的返回值类型,真实返回的对象可以是该类的任意一个子类对象。
简单工厂模式的实现,它是解决大量对象创建问题的一个解决方案。将创建和使用分开,工厂负责创建,使用者直接调用即可。简单工厂模式的基本要求是:
定义一个static方法,通过类名直接调用
返回值类型是父类类型,返回的可以是其任意子类类型
传入一个字符串类型的参数,工厂根据参数创建对应的子类产品
本文详细介绍了面向对象编程中的重载和重写概念。重载发生在同一类中,方法名相同但参数列表不同,而重写则在子类中对父类方法进行修改。此外,文章还探讨了多态性,强调多态主要涉及方法的多态,并解释了动态绑定。最后,以简单工厂模式为例,展示了如何在实际编程中应用这些概念。

6839

被折叠的 条评论
为什么被折叠?



