抽象类

作者: 文艺小年青 | 来源:发表于2017-09-08 20:39 被阅读0次

抽象类

问:用final关键字可不可以修饰抽象类?
答:不可以
因为:
1,用final修饰的会变成常量,不能被更改;
2,用final修饰的方法不能被重写
3,用final修饰的类不能被继承

  • 抽象类的一些用法:
//  abstract  用来修饰抽象类
//  抽象类中可以定义非抽象方法和属性
//  抽象类是不可以实例化的
//  抽象类的抽象方法必须实现
abstract class Shape {
    private String name;
    //也可以有非抽象方法
    public void setName(String name) {
        this.name = name;
    }
    
    public String getName() {
        return this.name;
    }
    
    abstract double bc();
    abstract double area();
    //有构造方法
    public Shape() {
        this.name = name;
    }
    
    public Shape(String name) {
        this.name = name;
    }
}

class Square extends Shape {
    //正方形有边长
    double sideLength;
    
    @Override   //周长
    double bc() {
        return this.sideLength * 4;
    }

    @Override   //面积
    double area() {
        return this.sideLength * this.sideLength;
    }   
    
    public Square() {
        
    }
    
    public Square (String name,double sideLength) {
        this.setName(name);
        this.sideLength = sideLength;
        
    }
}
class Rectangular extends Shape {
    double length;
    double width;
    @Override
    double bc() {
        return (this.length + this.width) * 2;
    }
    @Override
    double area() {
        return this.length * this.width;
    }
    
    public Rectangular() {
        
    }
    public Rectangular(int length,int width,String name) {
        super(name);
        this.length = length;
        this.width = width;
    }
    
}

//没有抽象方法也可以定义抽象类
abstract class a {
    public void func(){
        
    }
}
  • main函数中的实现:
public static void main(String[] args) {
        Square square = new Square("aa",10);
        double area = square.area();
        System.out.println("squ的名字" + square.getName() + "面积为" + area);
        
        Rectangular rect = new Rectangular(10,12,"bb");
        System.out.println("rect的名字" + rect.getName() + "面积为" + rect.area());
    }

相关文章

  • js.pattern -h 模板方法模式

    基于复用技术、抽象类-->继承抽象类 创建抽象类 实现抽象类

  • Dart中的抽象类 多态 以及接口

    抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。 1、抽象类...

  • Dart 抽象类 多态 和接口

    抽象类 Dart中的抽象类:Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。抽象类通过a...

  • abstract关键字

    抽象类 PHP5 支持抽象类和抽象方法。抽象类不能被实例化,必须先继承该抽象类,然后实例化该抽象类的子类。抽象类中...

  • 抽象类

    什么是抽象类 抽象类的特征 抽象类的意义

  • 25.面向对象(抽象类. 多态)

    面向对象(抽象类. 多态) 一. 抽象类 抽象类不能实例化 继承抽象类的子类必须将抽象类中所有的抽象方法重写 抽象...

  • Dart 抽象类 多态 接口

    1.抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。1、抽象...

  • Flutter/Dart - Dart中的抽象类 多态 和接口

    Dart中的抽象类 Dart中的抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口...

  • Dart中extends和implements

    Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。1、抽象类通过abs...

  • Dart的抽象类和接口

    Dart中抽象类 Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。1、抽象类通过abst...

网友评论

    本文标题:抽象类

    本文链接:https://www.haomeiwen.com/subject/zqpnjxtx.html