【多态和抽象类】(重点总结)

本文详细解释了Java中的多态概念,包括其基础(动态绑定),以及如何通过向上转型实现。同时介绍了抽象类的特性,如抽象方法的定义、重写条件和使用场景,指出Object作为所有类的父类。
摘要由CSDN通过智能技术生成

1.1多态的概念

多态的概念:多种形态,去完成某个行为,当不同的对象去完成时会产生出不同的状态。

1.2 多态实现条件

  1. 必须在继承体系下,发生向上转型
  2. 子类必须要对父类中方法进行重写(子类和父类有同名的覆盖/重写方法)
  3. 通过父类的引用调用重写的方法
    完成以上三部分,就会发生动态绑定。动态绑定是多态的基础。
    多态体现:在代码运行时,当传递不同类对象时,会调用对应类中的方法。

1.直接赋值

Animal animal=new Dog("yuanyuan",12);//父类引用引用子类对象

2.传参的时候,进行向上转型

 public static void func1(Animal animal) {
    }//子类对象赋值给父类对象的引用
    public static void main(String[] args) {
        Animal animal=new Dog("yuanyuan",12);
        func1(dog)
    }

3.返回值向上转型

public static Animal func2() {
        Dog dog=new dog("yuanyaun",12);
        return dog;
    }

1.3重写要满足的条件

1.返回值,参数列表,方法名必须一样。
2.被重写的访问修饰限定符 子类要大于等于父类
排序:private <默认的< protected< public
4.被private/static/final修饰的方法不能被重写
5.构造方法不能被重写

 public static Animal eat() {
        System.out.println(this.name+"正在吃饭 ");
        return null;
    }//协变类型
    public static Dog eat() {
        System.out.println(this.name+"正在吃狗粮");
        return null;
    }

Object是所有类的父类。

2.抽象类

1.使用abstract修饰的类/方法叫做抽象类/方法。
2.抽象类是不可以进行实例化的。

shape shape=new Shape();//错误

3.抽象类可以和普通类一样定义成员变量和成员方法
4.当一个普通的类,继承了这个抽象类,需要重写这个抽象类中的所有抽象方法。
5.抽象类的出现是为了继承。
6.abstract和final不能共存。
7.被private static 修饰,这个抽象方法也是不可以的。

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值