Java抽象类的相关说明
Java抽象类的相关说明
          在java代码中,abstract关键字修饰类可使类,我们将这种类称之为“抽象类”
Java中的抽象
抽象的功能:隐藏实现细节只向用户显示功能的过程
抽象类只关注:对象的功能,而不关注如何做。
实现抽象的方法
在java中有两种实现抽象的方法,它们分别是:
- 抽象类(部分)
 - 接口 (完全)
 
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实现Rectangle和Circle类
例:
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();  
}
以上代码,会编译失败 版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

			
               
               
               
               
          
