当前位置: 移动技术网 > IT编程>开发语言>Java > Java中的抽象类介绍

Java中的抽象类介绍

2020年08月17日  | 移动技术网IT编程  | 我要评论
Java抽象类当我们在编写一个类时,常常会为该类定义一些方法,这些方法用来描述该类的行为方式,那么这些方法都有具体的方法体。但是在某些情况下,某个父类只知道其子类应该包含哪些方法,但无法准确的具体描述。当我们在定义一个图形时,这个类中提供了计算周长的算法,但是图形计算周长的方法,不一样,所以父类无法准确的知道其子类计算周长的方法。抽象正是解决这个问题的。抽象类和抽象方法抽象方法和抽象类都必须使用abstract修饰符来定义,有抽象方法的类只能定义成抽象类,抽象类里可以没有抽象方法。抽象方法和抽象

Java抽象类

当我们在编写一个类时,常常会为该类定义一些方法,这些方法用来描述该类的行为方式,那么这些方法都有具体的方法体。但是在某些情况下,某个父类只知道其子类应该包含哪些方法,但无法准确的具体描述。当我们在定义一个图形时,这个类中提供了计算周长的算法,但是图形计算周长的方法,不一样,所以父类无法准确的知道其子类计算周长的方法。抽象正是解决这个问题的。

  • 抽象类和抽象方法
    抽象方法和抽象类都必须使用abstract修饰符来定义,有抽象方法的类只能定义成抽象类,抽象类里可以没有抽象方法。
    抽象方法和抽象类必须遵循以下原则:
    1.抽象类和抽象方法必须使用abstract关键字来修饰,抽象方法体中不能有方法体。
    2.抽象类不能被实例化,无法用new关键字来调用抽象类的构造器创建抽象类的实例。即使抽象类中不包含抽象方法,这个抽象方法也不能被实例化。
    3.抽象类中可以包含成员变量、方法、构造器、初始化代码块、内部类5种成分。抽象类的构造器不用于创建实例变量,主要是用于被其子类调用。
    4.含有抽象方法的类只能被定义成抽象类。

  • 定义抽象方法
    定义抽象方法只要在普通方法上增加abstract修饰,并把普通方法的方法体全部去掉,并且在方法之后增加分号即可。

abstract public class AbstractTest { //定义抽象方法 public abstract void fly(); public abstract int i = 1;//错误 //abstract不能用于修饰类方法 public abstract static void sleep(); //abstract不能用于修饰final类型的方法 public abstract final void breath(); } 

abstract 不能用于修饰成员变量。不能用于修饰局部变量。即没有抽象成员变量等说法。abstract也不能用于修饰构造器,没有抽象构造器,抽象类里定义的构造器只能是普通构造器。
abstract 不能用于修饰static方法,即通过该类去调用该方法,但如果该方法被定义成抽象方法,则导致通过该类调用该方法是出现错误(调用了一个没有方法体的方法,肯定会出错,所以不能定义)。
abstract不能用于修饰final的方法,该方法用了final之后就是一个不能被重写,而abstract修饰的方法,必须重写。
下面我们实现以下抽象类

//定义一个抽象类,计算面积 abstract class Shape { public Shape(){ } public abstract double findArea (); } //继承抽象类,实现一个圆的面积计算的方法 public class RealAbstract extends Shape { private double redius; public double getRedius() { return redius; } public void setRedius(double redius) { this.redius = redius; } @Override public double findArea() { return Math.PI * redius * redius; } public static void main(String[] args) { RealAbstract realAbstract = new RealAbstract(); //设置圆的半径 realAbstract.setRedius(5.6); //计算圆的面积 System.out.println(realAbstract.findArea()); } } 

本文地址:https://blog.csdn.net/m0_46189068/article/details/108034584

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网