抽象类和接口——JAVA

@月月鸟

抽象类和抽象方法

抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。
在这里插入图片描述

  • 抽象方法
    [访问修饰符]abstract<返回类型><方法名>([参数列表])
  • 抽象类
    abstract class<类名>{
    }
  • 定义一个抽象类
 public abstract class 类名称{
 	修饰符 absteact 返回类型 方法名();
 	修饰符 返回类型 方法名(){
 	方法体
 	}
 }

抽象类的优势和局限性

抽象类中已经实现的方法可以被子类使用,是代码可以被服用;同时提供了抽象的方法,保证了子类具有自身的独特性。
抽象方法可以有子类去实现,但会造成代码亢余,解决此问题最理想的方式就是使用接口。

定义和实现一个接口

1.接口
public interface 接口名{
// 接口成员
}

  • 和抽象类不同,定义接口使用interface修饰符,访问修饰符只能是public,求可选。
  • 接口成员可以是全局常量和公共的抽象方法。

2 实现接口
public 类名 implements接口名{
实现方法
普通方法
}.

  • 实现接口使用implements关键字。
  • 实现接口的类必须实现接口中定义的所有抽象方法。
  • 接口的实现类包含普通方法。
  1. 更复杂的接口
    接口继承
    [修饰符]interface 接口名extends父接口1,父接口2.。。{
    常量定义
    方法定义
    }
    实现多个接口的语法
    class 类名extends父类名implements接口1,接口2.。。。{
    类的成员
    }

面向对象设计的原则

  1. 摘取代码中变化的行为,形成接口。
  2. 多用组合,少用继承
  3. 针对接口编程,不依赖于具体实现。
  4. 针对扩展开放,针对改变关闭。

以上内容可能会有出入,部分出自转载,欢迎大家踊跃留言指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值