JAVA的多态

多态

复制代码
 1 abstract class MyShape {
 2     public abstract void getArea();
 3 
 4     public abstract void getLength();
 5 }
 6 
 7 class Circle extends MyShape {
 8 
 9     public static final double PI = 3.14;
10     double r;
11 
12     public Circle(double r) {
13         this.r = r;
14     }
15 
16     public void getArea() {
17         System.out.println("圆形的面积:" + PI * r * r);
18     }
19 
20     public void getLength() {
21         System.out.println("圆形的周长:" + 2 * PI * r);
22     }
23 }
24 
25 class Rect extends MyShape {
26 
27     int width;
28     int height;
29 
30     public Rect(int width, int height) {
31         this.width = width;
32         this.height = height;
33     }
34 
35     public void getArea() {
36         System.out.println("矩形的面积:" + width * height);
37     }
38 
39     public void getLength() {
40         System.out.println("矩形的周长:" + 2 * (width + height));
41     }
42 }
43 
44 public class Demo {
45     // 1、定义一个函数接收任意类型的图形对象
46     public static void printThe(MyShape s) {
47         s.getArea();
48         s.getLength();
49     }
50 
51     // 2、定义一个函数返回任意类型的图形对象
52     public static MyShape getSharp(int i) {
53         if (i == 0) {
54             return new Circle(4.0);
55         } else {
56             return new Rect(3, 4);
57         }
58     }
59 
60     public static void main(String[] args) {
61         Circle c = new Circle(4.0);
62         printThe(c);
63         Rect r = new Rect(3, 4);
64         printThe(r);
65 
66         MyShape ms = getSharp(0);
67         ms.getArea();
68         ms.getLength();
69     }
70 }
复制代码

 

posted @   ronle  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
点击右上角即可分享
微信分享提示