抽象、多态、接口总结思维导图

简单的抽象类、抽象方法,多态和总结的思维导图。另附final,static的简略用法。

接口
    定义
        接口(interface)是一系列方法的声明,是方法特征的集合,一个接口只有方法特征没有方法实现,因此这些方法可以在不同地方被不同类实现(implements),而这些实现可以有不同行为/功能。
            接口的作用:(1)解决Java无法使用多继承(2)制定标准
    特点
        接口中的方法必须全是抽象方法。
        接口中的数据成员都是静态的(static)且必须初始化。即数据成员必须是静态常量。若省略修饰符系统默认:public static final   静态方法:public static 修饰
        接口不能直接实例化 。同多态,通过实现类对象实例化——接口多态。
    实现
        接口的实现类:(1)重写接口中所有抽象方法。(2)是抽象类。
        实现接口的方法必须用public修饰(不能省略):子类重写父类方法时,访问权限只能更大或相等。
    接口的继承
        一个接口可以通过extends继承一个及以上的父接口: [ 修饰符 ] implements 接口名 extends 接口名1,接口名2……{ }
        新接口会继承父接口的常量,抽象/默认方法,但不能继承父接口的静态方法。
        用接口实现类的多重继承: [ public ] class  类名  implenents 接口名1,接口名2……{ }
抽象类/方法
    概念
        抽象类
            抽象类(abstract class)是专门用作父类的类,目的是根据其格式创建和修改新的类(被子类继承)。
                抽象类需要被继承,因此不能用final修饰
            abstract class 类名{声明成员变量;普通方法;抽象方法;  }
        抽象方法
            抽象方法(abstract开头的方法)它没有方法体。抽象方法指定了必须做的工作,而不指定如何做这项工作(被子类重写)。
                abstract 不能与private,static,final或native并列修饰同一个方法。
            abstract 返回值数据类型 方法名(参数列表);
    特点
        抽象类的父类可以为非抽象类。
        抽象类中不一定有抽象方法,有抽象方法的一定是抽象类
        抽象类中有构造方法。作用:完成子类访问父类数据的初始化。
    抽象类的子类
        抽象类无法直接实例化,只能通过子类实例化——抽象类多态
        (1)重写父抽象类中所有抽象方法。(2)是抽象类
抽象类和接口的区别
    接口可以看作100%的抽象类
    成员区别
        抽象类:变量、常量;构造方法;抽象方法、非抽象方法
        接口:常量;抽象方法
    关系区别
        类与类:继承,单继承
        类与接口:实现,单实现、多实现
        接口与接口:继承,单继承,多继承
    设计理念区别
        抽象类:对类抽象,包括属性、行为
        对行为抽象,主要是行为
多态
    概念
        多态是面向对象设计的重要特征。指一个实体(Animal)同时具有多种形态,即其对象的多种形态(Cat,Dog…)。
    前提/体现:
        (1)有继承/实现关系。(2)有方法重写。(3)(体现)有父类引用指向子类对象。
    多态中成员的访问特点
        成员变量:编译看左,执行看左。
        成员方法:编译看左,执行看右。
    多态中的转型
        向上转型
            父类引用指向子类对象
            Animal a = new Cat ;
                不能使用子类特有方法。a . Cat特有方法() ;×
        向下转型
            父类引用转为子类对象。
            Cat c =(Cat) a ;
                强制类型转换 c.Cat特有方法();√
static
    static关键字
        static修饰的成员变量和方法从属于类,普通变量和方法从属于对象
        子主题
    static变量
        即静态变量/类变量  访问: 类名.静态变量名
        静态变量是所有对象共有的,在类内存中仅有一个拷贝,可以大量节省内存。
    static方法
        静态方法  访问:类名.静态方法名(参数列表…)
        静态方法不能调用非静态成员和方法,非静态方法中可以调用静态方法和变量。
        静态方法中不能使用this和super。
final
    final变量:即常量,只能赋值一次,而后无法改变。
    final类:不能被继承。其成员方法均默认为final方法。
    final方法:不允许被子类重写(覆盖)。含final方法的类(非final类)可以被继承。final不可用于构造方法。
    final参数:可读取使用该参数,但无法改变参数值。
抽象类需要被继承,因此不能用final修饰
abstract 不能与private,static,final或native并列修饰同一个方法。
接口可以看作100%的抽象类
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抱歉,我是一个语言模型 AI,无法给您画。但我可以为您解释多抽象类。 多:多是面向对象编程中的一个重要概念,是指同一个方法可以根据对象的不同而具有不同的表现形式。在 Java 中,多可以通过继承、接口实现和方法重写来实现。 抽象类:抽象类是一种不能被实例化的类,它的主要作用是为了被继承。抽象类可以包含抽象方法和非抽象方法,抽象方法必须被子类实现,非抽象方法可以被子类继承或重写。 下面是一个简单的示例代码,演示了多抽象类的使用: ```java abstract class Shape { public abstract void draw(); } class Circle extends Shape { public void draw() { System.out.println("画一个圆形"); } } class Rectangle extends Shape { public void draw() { System.out.println("画一个矩形"); } } public class Main { public static void main(String[] args) { Shape s1 = new Circle(); Shape s2 = new Rectangle(); s1.draw(); s2.draw(); } } ``` 输出结果为: ``` 画一个圆形 画一个矩形 ``` 在这个示例中,Shape 是一个抽象类,它包含一个抽象方法 draw()。Circle 和 Rectangle 都是 Shape 的子类,它们都实现了 draw() 方法。在 main() 方法中,我们分别创建了一个 Circle 和一个 Rectangle 对象,并将它们赋值给 Shape 类型的 s1 和 s2 变量。由于多的特性,s1 和 s2 可以调用 draw() 方法,它们具有不同的表现形式。最终输出结果为画一个圆形和画一个矩形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值