A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

abstract class Geometry{
    public abstract double getArea();                }
class Circle extends Geometry{
            double r;
            Circle(double r) {
        this.r=r;
    }
            public double getArea() {
        return 3.14*r*r;
    }
}
public  class Student{
            public double calculate(Geometry g) {
                        return g.getArea();       
    }
            public static void main(String[]args) {       
        Circle c=new Circle(3);
                        Student s=new Student();
                System.out.println("The area of geometry is: "+s.calculate(c));
            }
}

2 个回复

倒序浏览
  1. abstract class Geometry {
  2.        
  3.         public abstract double getArea(double r);
  4. }

  5. public class Student {

  6.         public double calculate() {
  7.                 return new Geometry() {
  8.                         @Override
  9.                         public double getArea(double r) {
  10.                                 return 3.14 * r * r;
  11.                         }
  12.                 }.getArea(2);
  13.         }

  14.         public static void main(String[] args) {
  15.                
  16.                 Student s = new Student();
  17.                 System.out.println("The area of geometry is: " + s.calculate());
  18.         }
  19. }
复制代码

不知道对不对,今天刚学匿名内部类,如果不对记得回复我正确的,一起学习学习
回复 使用道具 举报 1 0
mark......
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马