首页 > 其他 > 详细

多态及实现方式

时间:2020-03-14 21:17:30      阅读:56      评论:0      收藏:0      [点我收藏+]

1.首先讲讲java面向对象的三大特性

(1)封装

(2)继承

(3)多态

2.什么是多态?

  多态则就是一种行为的不同表现形式

3.具体实现(抽象类)

  我们先抽象出一个抽象类Animal

  定义一个Animal的行为叫say()发出声音的意思

  抽象类的特点:由abstract关键字修饰 class ,抽象类里面允许有具体的实现,但是抽象方法不允许,不得直接 new abstractclass

 

public abstract class Animal {
public abstract void say();
}


现在有一只小猫,它想发出自己独特的声音

public class Cat extends Animal {
@Override
public void say() {
System.out.println("I‘m a cat : miao miao ~");
}
}


狗狗看见小猫可以叫,于是自己也想叫,那么同样去继承Animal并重写它的方法即可

public class Dog extends Animal {
@Override
public void say() {
System.out.println("I‘m a dog : wang wang ~");
}
}

编写一个能发出声音的类,它依赖于Animal

public class AnimalSay {
static void Say(Animal animal){
animal.say();
}
}

在主函数中测试

public class Main {
public static void main(String[] args) {
Cat cat = new Cat();
Dog dog = new Dog();
AnimalSay.Say(cat);
AnimalSay.Say(dog);
}
}

输出:

 I‘m a cat : miao miao ~
 I‘m a dog : wang wang ~

4.接口实现

   定义接口

public interface  Animal {
void say();
}

Cat 实现接口
public class Cat implements Animal {
@Override
public void say() {
System.out.println("I‘m a cat : miao miao ~");
}
}

Dog 实现接口
public class Dog implements Animal {
@Override
public void say() {
System.out.println("I‘m a dog : wang wang ~");
}
}

发出声音的工具类

public class AnimalSay {
static void Say(Animal animal){
animal.say();
}
}

在主函数中测试

public class Main {
public static void main(String[] args) {
Cat cat = new Cat();
Dog dog = new Dog();
AnimalSay.Say(cat);
AnimalSay.Say(dog);
}
}

输出:

 I‘m a cat : miao miao ~
 I‘m a dog : wang wang ~

 

4.UML类图

  技术分享图片

 

 



  

 

多态及实现方式

原文:https://www.cnblogs.com/pandayo/p/12493873.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!