Java学习——38、类的抽象性

抽象是研究复杂对象的基本方法,从复杂对象中抽象出本质特征,忽略次要细节,使某些信息和实现对于使用者不可见。抽象层次越高,其软件利用程序越高。

1、抽象类

使用关键字abstract声明的类为抽象类。

抽象类用于描述抽象概念。

一般用于其他类的父类。

比如:图形类。此为一个抽象类,每种图形都有位置、尺寸等属性,画不出一个没有任何形状、没有任何大小的图形。

public abstract class Figure {

public abstract void cut();//抽象方法

}

2、抽象方法

用关键字abstract声明的方法为抽象方法。

抽象方法只有方法声明,没有方法体,以;结束。

如上代码定义了抽象方法publicabstractvoid cut();

抽象方法提供方法声明与方法实现相分离。在抽象类中定义抽象方法,在实例类中进行实现。

3、注意

(1)构造方法、静态方法不能被声明为抽象方法。

(2)抽象方法必须声明在抽象类中。

(3)抽象类中可以不含有抽象方法。

(4)如果一个类继承抽象类,必须实现抽象类中的所有抽象方法。否则,该类必须声明为抽象类。

(5)抽象类要放在一个单独的文件中。

4、简单例题

package learn;

public abstract class Figure {

public abstract double area();//面积

public abstract double zhouchang();//周长

}

//Circle类

package learn;

public class Circle extends Figure{

private double radius;

public  Circle() {

radius=1.0;

}

public  Circle(double radius) {

this.radius=radius;

}

public double getRadius() {

return radius;

}

public  double area() {

return Math.PI*radius*radius;

}

public double zhouchang() {

return 2*Math.PI*radius;

}

public static void main(String args[]) {

Circle c=new Circle();

System.out.println("半径为"+c.getRadius()+"的圆\n面积为:"+c.area()+"\n周长为:"+c.zhouchang());

Circle c1=new Circle(3.3);

System.out.println("半径为"+c1.getRadius()+"的圆\n面积为:"+c1.area()+"\n周长为:"+c1.zhouchang());

}

}

其运行结果为:

半径为1.0的圆

面积为:3.141592653589793

周长为:6.283185307179586

半径为3.3的圆

面积为:34.21194399759285

周长为:20.734511513692635

(0)

相关推荐

  • C# 多态性

    多态性常被视为自封装和继承之后,面向对象的编程的第三个支柱. Polymorphism(多态性)是一个希腊词,指"多种形态", 多态:一个接口多个功能. 静态多态性:编译时发生函数 ...

  • 2020最新六年级数学上册单元测试卷全册,期末复习必备练习!

    一.动脑筋填空,相信你能行!(每空1分,共18分) (1)一个圆片的周长是6.28厘米,这个圆的直径是(  )厘米,面积是(  )平方厘米. (2)如果一圆的半径扩大3倍,它的周长扩大(   )倍,面 ...

  • java学习——28.类和对象

    面向对象程序设计(Object Oriented Programming,OOP)是基于对象概念的软件设计方法. Java是纯面向对象的程序设计语言,具有面向对象的所有的特性. 今天介绍类和对象. 面 ...

  • java学习——49.标签、文本行、按钮类

    java学习——49.标签、文本行、按钮类

  • java学习——48.容器、窗口、面板和框架类

    java学习——48.容器、窗口、面板和框架类

  • java学习——47、AWT组件类

    AWT(Abstract Window Tookit,抽象窗口工具集),主要包括组件(component).容器(container).窗口(Window).面板(Panel).框架(Frame).对 ...

  • java学习——45、自定义异常类

    之前抛出的均为Exception异常,只能在catch(Exception e){}中被捕获并处理,但由catch(Exception e)捕获到的异常对象包含了Java定义的所有的异常对象. 如果要 ...

  • Java学习——37、类的多态(二)

    类型的多态主要体现在:子类是一种父类类型. 子类通过继承扩充和发展了它的父类,子类是父类的一种特殊类型. 1.子类对象即是父类对象 子类对象包含了父类的所有成员,包括成员变量和成员方法,所以子类对象也 ...

  • Java学习——36、类的多态(一)

    多态性是指"一种定义,多种实现".例如,画画.同是画画,但每一个人,会画出来不同的画,这就是多态. 多态主要有方法的多态和类型的多态. 今天介绍方法的多态. 方法的多态包括方法的重 ...

  • Java学习——34、类的继承

    面向对象四大特性:封装.继承.多态.抽象. 今天介绍继承. 继承是面向对象的核心特性,能够最大限度地实现代码复用. 1.  由继承派生类 继承允许在已有类的基础上创建新类. 创建的新类叫做子类(或派生 ...

  • Java学习_Java核心类

    字符串和编码 字符串在String内部是通过一个char[]数组表示的,因此,可以按下面的写法: String s2 = new String(new char[] {'H', 'e', 'l', ' ...