Java抽象类的相关说明

Java-教程王 Java教程 发布时间:2021-04-15 15:42:59 阅读数:15586 1

Java抽象类的相关说明

          在java代码中,abstract关键字修饰类可使类,我们将这种类称之为“抽象类”

Java中的抽象

        抽象的功能:隐藏实现细节只向用户显示功能的过程

        抽象类只关注:对象的功能,而不关注如何做。

实现抽象的方法

在java中有两种实现抽象的方法,它们分别是:

  1. 抽象类(部分)
  2. 接口 (完全)

1. Java中的抽象类

   我们将运用abstract关键字声明的类称之为抽象类。
          抽象类需要扩展和实现它的方法,抽象类不能被实例化

抽象类的例子

abstract class testClass{}

抽象方法

一个被声明为 abstract 而没有实现的方法称为抽象方法。

abstract void printInfo();//无方法的实现内容

例:抽象对象及抽象方法的定义

abstract class abs_Class {
    abstract void printInfo();
}

class testClass extends abs_Class {
    void printInfo() {// printInfo 方法的实现
        System.out.println("print...");
    }

    public static void main(String args[]) {
        abs_Class  obj = new testClass();
        obj.printInfo();
    }
}
-----运行以上代码,将输出以下信息-----
print...

抽象类的应用场景

例:
  定义一个抽象类
Shape

     采用抽象类Shape实现RectangleCircle


例:

abstract class Shape {
    abstract void draw();
}

class Rectangle extends Shape {
    void draw() {
        System.out.println("drawing rectangle");
    }
}

class Circle1 extends Shape {
    void draw() {
        System.out.println("drawing circle");
    }
}

class TestAbstraction1 {
    public static void main(String args[]) {
        Shape s = new Circle1();// In real scenario, object is provided through
                                // method e.g. getShape() method
        s.draw();
    }
}
------运行以上代码,将输出以下信息-----
drawing circle


例:java中抽象类 

abstract class abs_testClass{
    abstract int testFun();
}

class A extends abs_testClass{
    int testFun() {
        return 888;
    }
}

class B extends abs_testClass{
    int testFun() {
        return 999;
    }
}

class TestBank {
    public static void main(String args[]) {
        abs_testClass t;
        t = new A();
        System.out.println(b.testFun());
        t = new B();
        System.out.println(b.testFun());
    }
}
-----运行以上代码,输出以下信息-----
888
999
 

拥有构造函数,数据成员,方法等的抽象类

         抽象类可以有数据成员,抽象方法,方法体,构造函数甚至main()方法
例:

 
abstract class abs_testClass{
    abs_testClass() {
        System.out.println("abs_testClass is created");
    }

    abstract void printInfo();

    void ttt() {
        System.out.println("printInfo");
    }
}

class A extends abs_testClass{
    void printInfo() {
        System.out.println("printInfo2");
    }
}

class testClass {
    public static void main(String args[]) {
        abs_testClass obj = new A();
        obj.printInfo();
        obj.ttt();
    }
}
 
注意事项:
     当一个类中拥有抽象方法时,则类必须声明为抽象

例:
class testClass{  
    abstract void printInfo();  
}
以上代码,会编译失败 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/250.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者