zoukankan      html  css  js  c++  java
  • Java中的抽象类


      含有抽象方法的类,抽象方法即用abstract修饰的方法,即父类只知道其子类应该含有该方法,但无法知道子类如何实现这些方法
      抽象类限制规定子类必须实现某些方法,但不关注实现细节
      抽象类中可以包含普通方法(在Java中仍然为虚方法),也可以没有抽象方法
      抽象类无法用于实例化对象,但可以定义引用变量,以用于指定子类对象

    参考代码:

    抽象类Shape

    package com.hao.practice;
    
    public abstract class Shape {
        public abstract float perimeter();
        public abstract float area();
    }
    View Code

    子类Circle

    package com.hao.practice;
    
    public class Circle extends Shape {
    
        static final float PI = 3.14f;
        float r = 0.0f;
    
        /*
         * 默认构造函数
         */
        public Circle() {
            super();
        }
    
        /*
         * 带参构造函数
         * @param r
         */
        public Circle(float r) {
            super();
            this.r = r;
        }
    
        /*
         * (非 Javadoc)
         * @see com.hao.practice.Shape#perimeter()
         */
        @Override
        public float perimeter() {
            // TODO 自动生成的方法存根
            return 2*PI*r;
        }
    
        @Override
        public float area() {
            // TODO 自动生成的方法存根
            return PI*r*r;
        }
    
    }
    View Code

    子类Rectangle

    package com.hao.practice;
    
    public class Rectangle extends Shape {
    
        float a = 0.0f;
        float b = 0.0f;
        
        /**
         * 默认构造函数
         */
        public Rectangle() {
            super();
        }
    
        /**
         * 拷贝构造函数
         * @param a
         * @param b
         */
        public Rectangle(float a, float b) {
            super();
            this.a = a;
            this.b = b;
        }
    
        @Override
        public float perimeter() {
            // TODO 自动生成的方法存根
            return 2*a*b;
        }
    
        @Override
        public float area() {
            // TODO 自动生成的方法存根
            return a*b;
        }
    
    }
    View Code
  • 相关阅读:
    LeetCode with Python -> Linked List
    拼多多2018校招编程题汇总 Python实现
    Windows命令行中pip install jieba,但没有安装到anaconda3中
    sklearn快速入门
    人工神经网络在肺结核诊断中应用的研究进展
    Leetcode with Python -> Array
    标签语义空间生成
    leetcode with python -> tree
    读书笔记——中文信息处理发展报告(2016)
    移动开发学习记录
  • 原文地址:https://www.cnblogs.com/tommychok/p/5503813.html
Copyright © 2011-2022 走看看