java抽象类与接口的个人理解与运用

1.抽象类
学习抽象类时应当先理解抽象方法的运用,抽象方法是一种特殊的方法,他有声明但没有具体的实现,具体的实现在继承的子类中实现。
抽象方法的申明格式:

public abstract void myFunction();

有抽象方法的类是抽象类,当然抽象方法和抽象类都需要有abstract作为修饰,抽象类不能用来创建对象。我们可以笼统地定义抽象类为有抽象函数的特殊类。

public abstract class abstractTest{//抽象类
    public abstract void myFunction();//抽象函数
}

如何使用抽象类呢?我们可以用子类去继承它,并在子类中将基类中的抽象函数进行重写,达到我们预想的结果。

import java.util.Scanner;

abstract class Shape{
    public double n;
    public double m;
    abstract public void getName();//获取什么外形
}

class Rectangle extends Shape{
    public String name;
    public Rectangle(String name){
        this.name=name;
    }
    @Override
    public void getName() {//重写getName
        System.out.println("My name is "+this.name);
    }
}

public class Demo{
    public static void main(String[] args) {
        Rectangle test = new Rectangle("Rectangle");
        test.getName();
    }
}

2.接口
接口是指供别人调用的方法或者函数,它相对于抽象类可能更为“抽象”。定义接口的关键词是interface,要让一个类遵循某组特地的接口需要使用implements关键字,一个类可以遵循多个接口,但是该类(非抽象类)同时要实现遵循接口的所有方法,抽象类可以不用全部实现。

import java.util.Scanner;

interface interfaceTest{
    public void getName();
}

class Rectangle implements interfaceTest{
    String name;
    Rectangle(String name){
        this.name=name;
    }
    @Override
    public void getName(){
        System.out.println("My name is "+this.name);
    }
}

public class Demo{
    public static void main(String[] args) {
        Rectangle test = new Rectangle("Rectangle");
        test.getName();
    }
}

3.抽象类与接口的应用场景
抽象类更偏向于整个类的抽象,它的包含更加全面,可以包括属性、行为等,但是接口更偏向于一个类的局部比如行为。拿一个我个人理解的例子来说吧,柯基、二哈、拉布拉多、中国田园犬都属于狗这一定义,我们可以将普遍的一些特征、行为,比如几条腿(特征)、犬吠(行为)等抽象成一个狗类,然后在描述柯基这样更为具体的狗类时我们可以继承抽象类。但如果我们要抽象他们的一种行为我们就可以使用接口,比如拆不拆家。继承是一个 "是不是"的关系,而 接口 实现则是 "有没有"的关系。

本文借鉴资料:大神地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值