abstract 抽象类、 interface 接口详解

本文详细介绍了Java中的抽象类(abstract关键字)和接口(interface关键字),包括它们的用法、特点以及区别。抽象类主要用于延展类的继承结构,可以包含抽象方法和非抽象方法,但不能实例化。接口则强调降低程序耦合性,提供统一参数类型,接口中的方法默认为抽象的,并支持多继承。实现接口的类必须重写接口中所有抽象方法。两者的主要区别在于接口不是类,不支持实例化,且接口之间可以多继承。
摘要由CSDN通过智能技术生成

0、 abstract 关键字

  1. abstract : 抽象,可修饰方法、类;
  2. 概述 :当所有的子类对父类某个方法都进行不同程度的重写,那么父类中被重写的方法的方法体没有任何意义,所以可以把方法体去掉再加上 abstract 关键字来修饰,将该方法变为抽象方法,那么抽象方法所以在的类(即父类)需要变成抽象类(需要用 abstract 修饰);
  3. 若存在抽象方法时,一定要被重写; 当普通类继承抽象类,需要重写父类中所有的抽象方法,如果不想重写所有的抽象方法,可以把普通类变为抽象类;
  4. 抽象类宗旨就是延展类的继承结构
//抽象类,被 abstract 修饰
abstract class Person{
   
	//抽象方法,被 abstract 修饰,且方法不具有方法体
    public abstract void eat();
    //普通方法
    public void sleep(){
   
        System.out.println("人睡觉...");
    }
}
class Student extends Person{
   
	//重写抽象方法 eat 
    @Override
    public void eat() {
   
        System.out.println("吃饱了才有力气学习...");
    }
    //重写普通方法 sleep
    @Override
    public void sleep() {
   
        System.out.println("睡醒了才有精神学习...");
    }
}
//当普通类继承抽象类,需要重写父类中所有的抽象方法,如果不想重写所有的抽象方法,可以把普通类变为抽象类
abstract class Teacher extends Person{
   
	//虽然并未在 Teacher 类中重写抽
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值