zoukankan      html  css  js  c++  java
  • 007 The Inheritance In JAVA

    在JAVA中有一个特型叫继承(Inheritance),通过继承我们可以重复使用代码,令代码简洁,易于扩展。例如:有一个sharp的类,这个类实现了sharp的一些方法,现在我们要写一个circle的类,我们想了想,呀circle属于sharp的一种呀,我们可以继承sharp呀!对,这就是继承的奥妙!

    请看下面的代码:

    /** 
     * @author gavin
     * 这是一个描述形状的类
     */
    class Sharp {    
        public double area(){
            return 0;
        }
        
        /*
         * 或得面积较大的Sharp
         */
        static Sharp getLarger(Sharp a,Sharp b){
            if (a.area()>b.area())
                return a;
            else
                return b;
        }
    
    }
    
    /**
     * 
     * @author gavin
     * 这是一个Circle类,继承Sharp
     */
    class Circle extends Sharp{
        
        private static final double PI = Math.PI;
        private double radius=0;
        
        Circle(int radius){
            this.radius =radius;        
        }
        
        public double area(){   //此方法覆盖了父类Sharp中的同名方法
            return PI*this.radius*this.radius;
        }
        
        //注意,Circle 继承 Sharp,所以Circle拥有Sharp中的getLarger方法
    }
    /**
     * 
     * @author gavin
     * 这是一个Square类,继承Sharp
     */
    class Square extends Sharp{
        private double side = 0;    
        
        Square(double side){
            this.side = side;
        }
        public double area(){  //此方法覆盖了父类Sharp中的同名方法
            return side*side;
        }
        //注意,Square 继承 Sharp,所以Square拥有Sharp中的getLarger方法
        
        public static void main(String[] args){
            Sharp a = new Circle(2);//一个父类可以有多个子类,如这里Sharp就有两个孩子,他们分别是Circle和Square。这里父类Sharp可以接受其所有子类的对象。
            Sharp b= new Square(2);
            Sharp larger = Sharp.getLarger(a, b);//父类Sharp不考虑它的子类是什么形状,会自动调用起子类对象的方法,因为方法被继承了。
            System.out.println("面积较的形状的面积是:" + larger.area());
            
        }
        
    }
  • 相关阅读:
    无旋转Treap简介
    bzoj 4318 OSU!
    bzoj 1419 Red is good
    bzoj 4008 亚瑟王
    bzoj 1014 火星人prefix
    更多的莫队
    bzoj 3489 A simple rmq problem
    洛谷 2056 采花
    NOIP 2017 游(划水)记
    UVa 11997 K Smallest Sums
  • 原文地址:https://www.cnblogs.com/tantanjishu/p/4913950.html
Copyright © 2011-2022 走看看