www.2014338.comJava抽象类和方法

Git ww9992019com 发表于 5 天前

www.2014338.com开户请拨15974937077普通护照收费降低西安阎良区62NzHU<div style="width:100%;float:left;" class="article-content">

                <input type="hidden" name="article_id" id="article_id" value="8930">
                <input type="hidden" name="catid" id="catid" value="0">

                <p>Java可以定义这样的一个类:这个类不能创建对象。它的目的只是表示一个想法或是一个框架,提供给其他类的对象共用。这样的类称为<strong>抽象类</strong></p>

<h2 id="h2-u8BEDu6CD5"><a name="%E8%AF%AD%E6%B3%95" class="reference-link"></a><span class="header-link octicon octicon-link"></span>语法</h2><p>在类声明中需要使用<code>abstract</code>关键字来声明一个抽象类。<br>例如,下面的代码声明一个<code>Shape</code>的抽象类:</p>

<pre><code class="lang-java">public abstract class Shape {

}

</code></pre>

<p>下面的代码为<code>Shape</code>类添加了一个<code>draw()</code>方法。</p>

<pre><code class="lang-java">public abstract class Shape {

public  Shape() {

}



public abstract  void  draw();

}

</code></pre>

<p>抽象类不一定要求它具有至少一个抽象方法。如果一个类有一个被声明或继承的抽象方法,它必须被声明为抽象类。抽象方法的声明方式与任何其他方法相同,只是在方法的最后加上分号表示,并且不会有任何执行代码语句。</p>

<h2 id="h2-u793Au4F8B"><a name="%E7%A4%BA%E4%BE%8B" class="reference-link"></a><span class="header-link octicon octicon-link"></span>示例</h2><p>下面的<code>Shape</code>类有抽象和非抽象方法。</p>

<pre><code class="lang-java">abstract class Shape {

private String name;

public Shape() {

this.name = "Unknown  shape";

}

public Shape(String name) {

this.name = name;

}

public String getName() {

return this.name;

}

public void setName(String name) {

this.name = name;

}

// 带有分号,表示为抽象方法

public abstract void draw();

public abstract double getArea();

public abstract double getPerimeter();

}

</code></pre>

<p>下面的代码展示了如何创建一个<code>Rectangle</code>类,它继承自<code>Shape</code>类。</p>

<pre><code class="lang-java">class Rectangle extends Shape {

private double width;

private double height;

public Rectangle(double width, double height) {

// Set the shape name as "Rectangle"

super("Rectangle");

this.width = width;

this.height = height;

}

// Provide an implementation for inherited abstract draw() method

public void draw() {

System.out.println("Drawing a  rectangle...");

}

// Provide an implementation for inherited abstract getArea() method

public double getArea() {

return width * height;

}

// Provide an implementation for inherited abstract getPerimeter() method

public double getPerimeter() {

return 2.0 * (width + height);

}

}

</code></pre>

<p>这个 <code>Rectangle</code>类要实现父类<code>Shape</code>类中的所有抽象方法,否则会有错误出现。</p>

                <br>
                <p style="text-align:center;float:left;width:100%;margin-top:24px;margin-bottom:18px;">
                        <button class="layui-btn layui-btn-danger" id="btn-reward"> ¥ 我要打赏 </button>  
                        <button class="layui-btn" id="article-perfect">
                            <i class="layui-icon layui-icon-edit"></i>教程纠错
                        </button>
                        <button class="layui-btn layui-btn-normal" id="action-collection">
                            <i class="layui-icon layui-icon-rate"></i>收藏
                        </button>
                </p>



                <div style="width:100%;margin-bottom: 16px; height: 32px;margin-top:18px;float:left;">

                    <span style="float:left;">上一篇:<a href="http://f2e.im/u/ww9992019com" title="Java继承方法隐藏(覆盖)"><i class="layui-icon"></i>
                            Java继承方法隐藏(覆盖)</a></span>
                                            <span style="float:right;">下一篇:<a href="http://f2e.im/u/ww9992019com" style="float:right;" title="下一篇:Java泛型类"><i class="layui-icon"></i>
                            Java泛型类</a></span>
                                            <div id="googlead" style="float:left;margin-top:8px;">
                        <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
                        <!-- yiibai下方 -->
                        <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-1090193214637198" data-ad-slot="6494738921"></ins>
                        <script>
                            (adsbygoogle = window.adsbygoogle || []).push({});
                        </script>
                    </div>
                </div>

                <div style="width:100%;margin-top:18px;float:left;">


            </div>
暂无回复,说出你的观点吧
登录后即可参与回复