JAVA的多态

Posted ronle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于JAVA的多态的主要内容,如果未能解决你的问题,请参考以下文章

每个人单核苷酸多态性(SNP)形成的原因是啥?

多态性和动态铸造

Java多态——代码复用性

Java 多态

java多态/重载方法——一个疑难代码引发的讨论

Java 多态