java 抽象类 接口 多态

java 抽象类 接口 多态

java 继承和多态
子类重写父类的实例方式,产生自己的功能行为,当把创建的子类对象的引用赋给父类对象,然后该父类对象(上转型对象)调用这个实例方法时就可能具有多种形态

java 接口和多态
java 舍弃c++的多重继承机制,使用单继承,即一个类只能有一个父类,易于管理和维护,
java 使用接口,一个类可以实现多个接口,实现多态:
不同的类在实现同一个接口时可能具有不同的实现,那么当接口变量在回调类实现的接口方法时就具有了多种形态

面向抽象编程:
指当设计某种重要的类时,不让该类面向具体的类,而是面向抽象类,即所设计类中重要数据是抽象类声明的对象,而不是具体类声明的对象。

面向接口编程:
核心思想—接口回调,即接口变量存放实现该接口的类的对象的引用,通过接口变量就可以回调类实现的接口方法。
//1、接口
public interface MyInterface{
public void test();
}
//2、实现接口的类
class MyClass implements MyInterface{
@Override
public void test() {
System.out.println(“reinvoke”);
}
}
public class Test {
public static void main(String[] args){
MyInterface mytest = new MyClass(); //3、接口变量存放实现该接口类的对象的引用
mytest.test(); //4、通过接口变量回调类实现的接口方法
}
}

两种定义抽象方式:抽象类、接口

抽象类、接口的区别

1、语法层面上的区别
a、抽象类可以提供成员方法的实现细节,
接口中只能存在public abstract类型的方法,且不能有具体的实现方法。
b、抽象类中的成员变量可以是各种类型的,
接口中的成员变量只能是public static final类型的,必须给其初值,实现类中不能重新定义,也不能改变其值
c、抽象类可以有静态代码块和静态方法,
接口中不能含有静态代码块以及静态方法
d、一个类只能继承一个抽象类(继承关系),而一个类却可以实现多个接口,抽象类可以定义构造函数,接口则不能

2、设计层面上的区别(设计理念)
抽象类
是”is-a”关系,是对一种事物的抽象,即对类抽象,抽象类是对整个类整体进行抽象,包括属性、行为。
它作为很多子类的父类,是一种模板式设计
接口
是”like-a”关系,是对行为的抽象。即对类局部(行为)进行抽象
它是一种行为规范,是一种辐射式设计

类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),
对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,
对不是同一包中的没有父子关系的类相当于私有
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值