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

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被猫和狗的叫声方法重写,从而在外是相同的调用方法,实际上却是没有不同的实现方法。
这就是多态的一个应用场景。

posted @   Yuri-L_210162701054  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
html
点击右上角即可分享
微信分享提示