首页 > 编程语言 > 详细

Java的抽象类

时间:2020-01-09 18:45:33      阅读:52      评论:0      收藏:0      [点我收藏+]

java中的抽象类是一个像鬼一样的东西!

它究竟有什么用!

举例说明!例子如下:

public class Main {
    public static void main(String[] args) {
        Person p = new Student();
        p.run();
    }
}

abstract class Person {
    public abstract void run();//抽象类
}

class Student extends Person {
    @Override
    public void run() {
        System.out.println("Student.run");
    }
}

简单的理解就是为了覆写父类中的方法,但该方法在父类中又没有任何意义,但又想装逼用覆写怎么办!所以就引入了抽象类,它借用关键字abstract,只有方法名没有具体的实现内容。大致就是这么个东西!

=================================================================================

哈哈!其实抽象类是有大作用的!

上面简单介绍了一下抽象类,但在实际中,抽象类方法本质上是定义接口规范的,也就是说在父类中规定方法的名称,让继承它的子类都有相同的接口实现,这样多态就能发挥其真正的威力。

但是对于单纯的抽象类(只有抽象的东西,其他的什么也没了),每次都要写关键字abstract,就太麻烦了,所以此处引入了接口!

接口 interface:

abstract class Person {
    public abstract void run();
    public abstract String getName();
}
//下面的代码就是用interface接口替换abstract抽象类的结果
interface Person {
    void run();
    String getName();
}

那么究竟如何用继承的方法来继承接口呢?此处就引入了implements关键字:

class Student implements Person {
    private String name;

    public Student(String name) {
        this.name = name;
    }

    @Override
    public void run() {
        System.out.println(this.name + " run");
    }

    @Override
    public String getName() {
        return this.name;
    }
}

接口还有一个重要的作用!就是可以实现子类继承多个父类的情况!在Java中,一个类只能继承自另一个类,不能从多个类继承。但是,一个类可以实现多个interface,例如:

class Student implements Person, Hello { // 实现了两个interface 同时继承了Person,Hello
  ... }

关于接口的继承!一个接口也可以继承另一个接口,和普通的继承一样!例如:

interface Hello {
    void hello();
}

interface Person extends Hello {
    void run();
    String getName();
}

合理的接口使用,提高代码的复用,是牛牛的工程师必备的技能。。。。。。

Java的抽象类

原文:https://www.cnblogs.com/lipu12281/p/12172464.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!