abstract
Posted 暗影蔽日
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abstract相关的知识,希望对你有一定的参考价值。
抽象类是指只能被继承而不能生成具体对象的类。包含抽象方法的类叫做抽象类,一个抽象类中可以有一个或多个抽象方法,但也可以没有抽象方法
abstract class className { //属性 //抽象方法 [访问控制修饰符]abstract 返回值类型 方法名(参数列表); }
所谓抽象方法,是指在类中仅仅定义“要处理数据”,但“不知如何处理数据”的方法,一个抽象方法仅仅是为所有子类定义一个统一的接口,具体代码通过派生类中对抽象方法的覆盖来实现。
//Shape.java public abstract class Shape { public abstract double getArea();}
再定义其子类,再重写方法getArea();
//Rectangle.java public class Rectangle extends Shape //从抽象类继承 { private double length; private double height; public Rectangle(double length,double height) { this.length = length; this.width = height; } public double getArea() { return length*height; } }
定义方形类Square
//Square.java public class Square extends Rectangle//从矩形继承 { public Square(double length) { super(length,length);//超类构造方法 } public double getArea()//重写方法getArea(),正方形的面积 { double area = super.getArea();//超类的方法 return area; } }
其中super关键字指示父类,派生类中调用了父类的构造方法Rectangle()和getArea()方法
如果把Rectangle类中的getArea()方法改成final,则在Square类中就不能被重载了
以上是关于abstract的主要内容,如果未能解决你的问题,请参考以下文章
抽象类abstract与接口interface区别代码实战演示——观止
智能合约实战 solidity 语法学习 12 [ virtual 重写override 抽象abstract 接口interface 库library 销毁selfdestruct] 附代码
智能合约实战 solidity 语法学习 12 [ virtual 重写override 抽象abstract 接口interface 库library 销毁selfdestruct] 附代码
哪位大侠给我讲讲c#中virtual, abstract和override的区别和用法,不胜感激,初学者,刚学这段,非常迷糊