day09多态

本文探讨了Java中的接口和多态性概念。接口作为标准和规则,允许类实现多继承,并强制实现所有抽象方法。多态性则体现在行为的多样性,允许同一类型引用指向不同对象时表现出不同行为。同时,介绍了向上造型和强制类型转换的使用,以及它们在确保类型安全中的作用。此外,文章强调了使用父类或接口而非具体类的设计原则。
摘要由CSDN通过智能技术生成

接口

  • 引用类型,只能包含常量和抽象方法,不能被实例化(new 对象)
    需要被实现,实现类:必须重写所有抽象方法
    一个类可以实现多个接口,用逗号来分隔,若又继承又实现,应先继承后实现
    接口可以继承接口
  • 意义:用来实现多继承,是一个标准、规则

不理解得东西暂时搁置它,不用去纠结

多态(多种形态,多种状态)

  • 意义:
    • 行为的多态:同一类型的引用指向不同的对象时,有不同的实现(方法)。-------------所有抽象方法都是多态的
      -----行为的多态:cut()、getImage()、move();
    • 同一对象(我)被造型为不同的类型时(java程序员、儿子),有不同的功能(写开发,做家务)------------所有对象都是多态的
    • 对象的多态:
    • 向上造型/自动类型转换:
      1. 父类的引用指向子类的对象
      2. 能点出来什么,看引用类型
      3. 能造型成为的数据类型有:父类+所有实现的接口
        person p = new Student(); //大(人) 转 小(学生) 向上造型
    • 强制类型转换 :
      1. 引用所指向的对象,就是该类型
      2. 引用所指向的对象,实现了该接口或继承该类型
    • 强转时若不符合如上条件,则发生 ClassCastException 异常
Aoo o = new Boo();//向上造型,父类AOO转向子类BOO  Boo是对象。 o是还是Aoo的类型
        //引用o (Aoo类型的)该类型 指向的对象就是Boo类型(强转); 条件满足可以强转
        //引用所指向的对象,就是该类型
        Boo o1 = (Boo) o;//强制类型转换 大的不能转小的, Boo o1 = o; //类型o是AOO的,所以编译错误
        //引用o指向的对象(new Boo)实现了Inter接口(强转Inter)Boo实现了Inter满足条件,可以强转
        Inter o2 = (Inter) o;//前面的指向的本身的类型Inter = 就是 指向Inter的类型 ,引用就是引用成本身的类型。所以强制类型转换
        //Coo o3 = (Coo)o;//运行时会发生类型转换异常ClassCastException
        if (o instanceof Coo){
            Coo O4 = (Coo) o;
        }else {
            System.out.println("o不是Coo的类型");
        }

普通方法只具备一种形态(方法),

/**行为的多态*/
//person人  这是同一类型父类   ·指向不同的对象new 理发师...  有不同的实现方法(来调用方法,每个重写的方法不同,且抽象类的方法必须重写) p1.cut(){剪发}。
person p1 = new 理发师;
person p2 = new 外科医生;
person p3 = new 演员;
p1.cut();//剪发
p2.cut();//治病
p3.cut();//演习

abstract class person{
	abstract void cut()
}
class 理发师 extends person{
	void cut(){剪发}
}
class 外科医生 extends person{
	void cut(){治病}
}
class 演员 extends person{
	void cut(){演习}
}

能用父类绝不用之类(接口也是父类interface)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值