首页 > 其他分享 >小白的学习笔记1:接口和多态,以及例子

小白的学习笔记1:接口和多态,以及例子

时间:2024-08-16 08:53:55浏览次数:11  
标签:makeSound void 多态 接口 小白 Animal 方法 public

2024.8.2
1.接口
接口即为一个抽象的方法,此方法定义了很多种行为,可供类们去实现,而避免了使用多种重复的else……if,while等即时运算。
抽象,即为更上层的概念。比如“男人”的抽象为“人”,“人”的抽象为动物,这就是一个统领的节点。
以下为示例
public class Demo1 {
public interface animal{//定义一个接口方法
public void eat();//定义两个公共方法
public void bellow();//等待继承此接口的类来实现这两个方法
public static void al(){
System.out.println("此项为接口的定义!");
}
}
public class bear implements animal{
public void eat(){//实现animal中的eat方法
System.out.println("熊正在干饭!");
}
public void bellow(){//实现animal中的bellow方法
System.out.println("熊正在吼叫!");
}
public String pack(){//在类中额外创建一个方法
return "好多动物!";
}
}

}
从此可以看出接口既是可以被下层对象可使用的另一种“继承”。

2.多态

一、定义

  • 多态(Polymorphism)字面意思为“多种形态”,在编程中,它指的是相同的操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
  • 简单来说,多态就是允许将子类类型的指针赋值给父类类型的指针(向上转型),然后通过这个父类类型的指针调用实际子类对象的成员函数,此时发生的是动态绑定(即运行时绑定),根据对象的实际类型来调用相应的函数。
    class Animal {
    // 父类中的方法
    public void makeSound() {
    System.out.println("某种声音");
    }
    }

// Dog类继承自Animal类
class Dog extends Animal {
// 重写父类中的方法
@Override
public void makeSound() {
System.out.println("汪汪");
}
}

// Cat类继承自Animal类
class Cat extends Animal {
// 重写父类中的方法
@Override
public void makeSound() {
System.out.println("喵喵");
}
}

// 测试多态性
public class PolymorphismTest {
public static void main(String[] args) {
// 父类引用指向子类对象
Animal myDog = new Dog();
Animal myCat = new Cat();

    // 调用同一个方法,但行为取决于对象的实际类型  
    myDog.makeSound(); // 输出:汪汪  
    myCat.makeSound(); // 输出:喵喵  

    // 列表存储不同类型的对象  
    Animal[] animals = new Animal[2];  
    animals[0] = new Dog();  
    animals[1] = new Cat();  

    for (Animal animal : animals) {  
        animal.makeSound(); // 运行时根据对象的实际类型调用对应的方法  
    }  
    // 输出:  
    // 汪汪  
    // 喵喵  
}  

}
此项结果中,makesound被猫和狗的叫声方法重写,从而在外是相同的调用方法,实际上却是没有不同的实现方法。
这就是多态的一个应用场景。

标签:makeSound,void,多态,接口,小白,Animal,方法,public
From: https://www.cnblogs.com/yichige/p/18362202

相关文章

  • 多态的含义
    目录1、多态的定义2、多态存在的三个必要条件3、多态在Java中的表现形式1、多态的定义Java多态(Polymorphism)是面向对象编程的一项核心概念,它允许对象以多种形式出现。多态其实和继承息息相关,多态通常是指声明一个父类可以指向很多个不同的子类对象,而且每个子类表现出......
  • Java异常 小白版
    什么是异常在程序运行时打断正常程序流程的任何不正常的情况称为错误或异常。异常包括用户造成的异常和系统造成的异常。例如:网络连接中断、操作符越界、加载的类找不到异常产生的原因和分类1.异常产生的原因在Java中异常产生,主要是有三种原因:编写程序代码中的错误产生......
  • (路由卷1)-31-接口_区域_虚链路认证
    ospf认证1.明文认证2.md5认证0不认证1明文认证2md5认证ipospfauthentication-keymykeyipospfauthenticion或area0authentication1.接口2.区域3.虚链路r2:intlo0ipadd2.2.2.2255.255.255.0noshintf0/0ipadd10.1.234.2255.255.255.0noshroute......
  • Java 入门指南:接口(Interface)
    引言在Java编程中,接口(Interface)是一种非常重要的概念,它不仅是面向对象编程(OOP)的基石之一,也是实现高内聚、低耦合设计原则的关键工具。接口定义了一组方法,但不提供这些方法的实现细节,而是由实现接口的类来具体实现。这种机制使得Java程序更加灵活、易于扩展和维护。定义接......
  • (路由卷1)-9-EIGRP被动接口_负载
    被动接口减少流量传递routereigrp100passive-interfacef0/0net1.1.1.10.0.0.0eigrp一边单播一边组播无法建立邻居,两边单播能建立邻居,接口设置为passive接口不管如何都不能建立邻居。eigrppassive接口不会发送hello包,但是可以通告路由,干掉hello包。passive-interface......
  • 嗨,这里是新人小白一枚,希望以后可以向各位大佬多多吸取经验,今天学习了Markdown的使用,下
    Markdown学习文档创建下载typora将文件扩展名改为md即可标题+空格+标题名(几级标题就是几个#,最多支持至六级标题)字体晨昏朝暮之间(粗体在字两边加**)晨昏朝暮之间(斜体两边加*)晨昏朝暮之间(斜体加粗两边加***)晨昏朝暮之间(删除线两边加~~)引用晨昏朝暮之间(引用>+空格即......
  • oracle存儲過程掉用HTTP接口
    CREATEORREPLACEPROCEDUREFSMT.P_GET_HTTP_RES/*描述:存儲過程掉用HTTP接口作者:Janus日期:2024-08-15*/(M_DOC_NOINVARCHAR2,  M_DOC_TYPEINVARCHAR2, M_STANDBYINVARCHAR2,  M_EMPINVARCHAR2,  RES......
  • 嗨,这里是新人小白一枚希望以后可以和大家多多交流,今天学习了Markdown,笔记双手奉上,求大
    Markdown学习文档创建下载typora将文件扩展名改为md即可标题+空格+标题名(几级标题就是几个#,最多支持至六级标题)字体晨昏朝暮之间(粗体在字两边加**)晨昏朝暮之间(斜体两边加*)晨昏朝暮之间(斜体加粗两边加***)晨昏朝暮之间(删除线两边加~~)引用晨昏朝暮之间(引用>+空格即......
  • wookteam协作平台api/users/searchinfo接口存在SQL注入漏洞 附POC
    @[toc]免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。1.wookteam协作平台简介微信公众号搜索:南风漏洞复现文......
  • 小白学习微信小程序的客户端与服务端交互
    微信小程序是一种新型的应用程序,可以在微信客户端内运行。它具有轻量、快速的特点,可以快速开发和发布。在微信小程序中,客户端与服务端的交互是非常关键的一部分,通过这种交互,可以实现数据的传输和处理。接下来,我将为你详细介绍如何在微信小程序中实现客户端与服务端的交互。一......