抽象类与上转型和抽象方法说明 - 实例运用

抽象类的特点:
1,抽象方法一定在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为调用抽象方法没意义。
4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。

如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

抽象类和一般类没有太大的不同。
该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂的东西。
这些不确定的部分,也是该事物的功能,需要明确出现。但是无法定义主体。
通过抽象方法来表示。

抽象类比一般类多个了抽象函数。就是在类中可以定义抽象方法。
抽象类不可以实例化。

特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。

package lansky;
 
public class lansky07
{
    public static void main(String[] args)
    {
        Shape shape = new Rectangle(8.8,8.8);
        double s1 = shape.acreage();
        System.out.println("矩形面积为:" + s1);
 
        Shape shape1 = new Triangle(8.8,8.8);
        double s2 = shape1.acreage();
        System.out.println("三角形面积为:" + s2);
 
        Cube cube = new Cube(8.8,8.8,8.8);
        double s3 = cube.volume();
        System.out.println("立方体体积为:" + s3);
    }
}
 
abstract class Shape
{
    protected double x;
    protected double y;
     
    public abstract double acreage();
}
 
class Rectangle extends Shape
{
    public Rectangle(double x,double y) 
    {
        super();
        super.x = x;
        super.y = y;
    }
     
    public double acreage()
    {
        double RectangleAcreage = x*y;
        return RectangleAcreage;
         
    }
}
 
class Triangle extends Shape
{
    public Triangle(double x,double y) 
    {
        super();
        super.x = x;
        super.y = y;
    }
     
    public double acreage()
    {
        double TriangleAcreage = (x*y)/2;
        return TriangleAcreage;
    }
}
 
class Cube extends Rectangle
{
    private double h;
    public Cube(double x,double y,double h) 
    {
        super(x,y);
        this.h = h;
    }
     
    public double volume()
    {
        double volumeint=h * x * y;
        return volumeint;
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容