Java抽象类与接口

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Java抽象类与接口

往日如风_   2022-06-03 我要评论

抽象类与接口

1、抽象类

1.1、什么是抽象类

如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类

1.2、抽象类的用法

一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。

abstract class Shape{
   /* public String name;
    public int age;
    public void func(){
        System.out.println("ada");
    }
    public static void func2(){
        System.out.println("akjdhkjasd");
    }*/
    public abstract void draw();//抽象方法
}

注意:抽象类也是类,内部可以包含普通方法和属性,甚至构造方法

1.3、抽象类特点(限制条件)

1、使用abstract 修饰的类,就是抽象类

2、使用abstract 修饰的方法,就是抽象方法

3、抽象类不能够进行实例化new 抽象类();

4、里面的成员变量和成员方法都是和普通类是一样的,只不过就是不能进行实例化了

5、当一个普通的类,继承这个抽象类之后,那么这个普通类,必须重写这个抽象类当中所有的抽象方法。

6、抽象类存在的最大的意义就是为了被继承

7、抽象类也可以发生向上转型进一步发生多态

8、当一个抽象类A继承了抽象类B,此时抽象类A可以不重写抽象类B当中的方法

9、当一个普通的类C继承了第8条的A,此时就得重写所有的抽象方法

10、 final不能修饰抽象方法和抽象类

11、抽象方法也不能是private的

12、抽象类当中不一-定有抽象方法,但是如果这个方法是抽象方法,呢么这个类- -定是抽象类

代码示例:

abstract class Shape{
   /* public String name;
    public int age;
    public void func(){
        System.out.println("ada");
    }
    public static void func2(){
        System.out.println("akjdhkjasd");
    }*/
    public abstract void draw();//抽象方法
}
abstract class A extends Shape{  //当一个抽象类A继承抽象类Shape时,可以不重写抽象类Shape中的方法
    public abstract void func();
}
class B extends A{  //出来混迟早得还,父类没有重写  你全写
    @Override
    public void draw() {
    }
    @Override
    public void func() {
    }
}
class Circle extends Shape {  //普通类继承了抽象类(内有抽象方法),这里报错,  必须重写Shap类当中的抽象个方法
    @Override
    public void draw() {
        System.out.println("⚪");
    }
}
class Rect extends Shape {
    @Override
    public void draw() {
        System.out.println("♦");
    }
}
class Triangle extends Shape {
    @Override
    public void draw() {
        System.out.println("
      

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们