多态、抽象类和接口——[04]

一、抽象类与抽象方法

  • 宠物 是个抽象的概念
  • 类上添加abstract修饰符,这个类就成为一个抽象类了。
  • 普通类中不允许有抽象方法存在。
  • 有抽象方法的类必然是抽象类
  • 抽象类中可以有普通方法。
  • 抽象类不可以进行实例化对象操作
  • 父类中的抽象方法必须在子类中进行重写,除非子类也是一个抽象类。

二、向上/向下转型与instanceof运算符

向下转型:Dog dog1=(Dog) pet;

向上转型:Pet pet=new Dog();

instanceof运算符用来判断对象是属于哪种父类类型

多态的实现方式:

1、使用父类做为方法的参数实现多态

public void cure(Pet pet) {
    pet.toHospital();
}

2、使用父类对象做为方法的返回值实现多态

public Pet getObj(int num){
    Pet pet=null;
    switch (num){
        case 1:
            pet=new Dog("小黑", 70, 50, "拉不拉多");
            break;
        case 2:
            pet= new Penguin("花花", 50, 50, "Q妹");
            break;
    }
    return pet;

}

三、抽象类与接口

为什么要把一个普通类定义为一个抽象类呢?

原因:

1、它只是一个抽象感念。生活中不存在具体的实例。

2、不可以进行实例化。

抽象类中的抽象方法必须被子类所重写,除非子类也是抽象类。

门:抽象的概念。

防盗门,门具有的能力呢,(功能)

四、接口与抽象类的区别

相同点:

1、都是一个抽象的概念。

2、都不能实例化。

3、都可以定义抽象方法。

4、里面定义的抽象方法,都必须被子类所重写。

不同点:

1、接口中的方法都是抽象方法,不能有普通方法。而抽象类中可以有普通方法。

2、接口中没有构造方法,抽象类中有构造方法。

五、接口

1、接口是一种功能,能力

2、接口也是一种规定,约束,规则

生活中的接口

项目经理约定:针对用户这个对象,做几个功能,注册,登录,修改个人资料这3个功能。

定义接口的时候需要思考的东西:

1、方法名称

2、方法参数

3、返回值类型

4、思考该接口中的其他功能

接口中的属性都是:全局的,静态的,常量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值