详谈面向对象中的多态

1.什么是多态?

多态就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同 的状态,从一定角度来看,封装和继承几乎都是为多态而准备的。

2.为什么要运用多态?

多态不仅能让程序设计更加易实现,也更容易维护和扩展。

3.如何使用多态?

实现多态的必要条件

子类必须要继承父类(需要满足继承关系)

父类引用指向子类引用

注意点

多态是方法的多态,属性没有多态性。

父类引用指向子类实例时,可以调用子类重写父类的方法以及直接继承父类的方法,无法调用子类特有的方法

静态static方法属于特殊情况,静态方法只能继承,不能重写。调用的时候用谁的引用,则调用谁的版本

public class People {
    String name;//名字
    int age;//年龄
    int sex;//性别
    String role;//职业

    //有个doing方法,表示要做的事

    public void doing(String role){
        if("doctor".equals(role)){
            System.out.println("救死扶伤");
            return;
        }
        if("programmer".equals(role)){
            System.out.println("不掉头发赚钱");
            return;
        }
        if("teacher".equals(role)){
            System.out.println("教书");
            return;
        }

    }
}

4.什么是重写?

父类中的方法不能灵活的满足子类的需求,重写达到要求

重写的注意点

方法名相同,参数列表相同,返回值类型相同或者是其子类,访问修饰符不能严于父类

 如果子类重写了父类的方法,则执行的就是子类重写过后的方法

public class Test {
    void Xiaoniao (){   
        System.out.println("小鸟会飞");
        System.out.println("麻雀在天上飞");    
    }
}
class Yu extends Test{    
    public static void main(String[] args){    
          Yu cat=new Yu();  
          Yu.Xiaoniao(); 

    }
    void Yu(){      
        System.out.println("鱼会游泳");  
        System.out.println("金鱼在水里游泳");   
    }
}

5.关键字abstract

抽象的,可以修饰类和方法,修饰的类叫抽象类,修饰的方法叫抽象方法,声明一种规定,让子类必须要重写的内容

abstract注意点:

 abstract 修饰的方法没有方法体,必须在抽象类中。抽象类中既可以有抽象方法,也可以有普通方法  父类中申明的抽象方法一定要被子类重写,如果子类没有都重写,那么该子类也要是抽象类

其他没有重写的方法再由子类继续重写                 

抽象类不能创建对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值