Java抽象类 Java接口 抽象类和接口使用区别: activity 深度继承关系

简介: Java抽象类 Java接口 抽象类和接口使用区别: activity 深度继承关系

Java抽象类



1、抽象类使用abstract修饰;


2、抽象类不能实例化,即不能使用new关键字来实例化对象;


3、含有抽象方法(使用abstract关键字修饰的方法)的类是抽象类,必须使用abstract关键字修饰;


4、抽象类可以含有抽象方法,也可以不包含抽象方法,抽象类中可以有具体的方法;


5、如果一个子类实现了父类(抽象类)的所有抽象方法,那么该子类可以不必是抽象类,否则就是抽象类;


6、抽象类中的抽象方法只有方法体,没有具体实现;


Java接口



接口:


1、接口使用interface修饰;


2、接口不能被实例化;


3、一个类只能继承一个类,但是可以实现多个接口;


4、接口中方法均为抽象方法;


5、接口中不能包含实例域或静态方法(静态方法必须实现,接口中方法是抽象方法,不能实现)


抽象类和接口使用区别:



抽象类中的成员变量可以是各种类型的    而接口中的成员变量只能是public static final类型的。


A,B,C 三个类貌似差不多啊,有很多公共的属性或者方法,于是我,抽象出一个抽象类D,将这些公共的部分放到抽象类中,然后ABC三个类继承自这个抽象类D。所以,抽象类是“自下而上”的;


抽象类是很有用的重构工具,它将继承层次结构上移,这种上移操作一般是后发的。

抽象类是对一类事物的抽象。它通过继承操作实现它的终极目标:复用。


所以,抽象类是能拥有普通属性和普通方法的,它除了不能实例化和必须有抽象方法外,和普通类没太大区别。


接口则不一样,它是“自上而下”的设计理念,我们工作的设计过程中,一般都是先设计好接口,先不考虑具体的实现。


所以,如果说抽象类是对事物的抽象,接口就是对行为的抽象,接口建立了类和类之前的契约和协议,这也是它的终极目标:行为契约。


接口将接口和具体实现两者解耦的更加彻底,使得面向接口编程更加的容易和纯粹。


activity 深度继承关系



activity  ---ContextThemeWrapper---ContextWrapper---Context


Context:


public abstract class Context {}

是一个抽象类,里面有很多的activity的一些操作以及文件操作等等


例如:


public abstract void startActivity(Intent var1);
public abstract void startActivity(Intent var1, Bundle var2);


目录
相关文章
|
1天前
|
存储 安全 Java
Java一分钟之-Map接口与HashMap详解
【5月更文挑战第10天】Java集合框架中的`Map`接口用于存储唯一键值对,而`HashMap`是其快速实现,基于哈希表支持高效查找、添加和删除。本文介绍了`Map`的核心方法,如`put`、`get`和`remove`,以及`HashMap`的特性:快速访问、无序和非线程安全。讨论了键的唯一性、`equals()`和`hashCode()`的正确实现以及线程安全问题。通过示例展示了基本操作和自定义键的使用,强调理解这些概念对编写健壮代码的重要性。
4 0
|
1天前
|
存储 安全 Java
Java一分钟之-集合框架进阶:Set接口与HashSet
【5月更文挑战第10天】本文介绍了Java集合框架中的`Set`接口和`HashSet`类。`Set`接口继承自`Collection`,特征是不允许重复元素,顺序不确定。`HashSet`是`Set`的实现,基于哈希表,提供快速添加、删除和查找操作,但无序且非线程安全。文章讨论了`HashSet`的特性、常见问题(如元素比较规则、非唯一性和线程安全性)以及如何避免这些问题,并提供了代码示例展示基本操作和自定义对象的使用。理解这些概念和注意事项能提升代码效率和可维护性。
8 0
|
1天前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
6 0
|
1天前
|
Java
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
|
2天前
|
Java
Java一分钟之-抽象类与接口的应用场景
【5月更文挑战第9天】Java中,抽象类和接口用于实现多态和抽象。抽象类不能实例化,提供部分实现和定义模板;接口包含无实现的抽象方法,用于定义行为规范和解耦合。选择时,关注行为用接口,部分实现用抽象类。注意抽象类的`final`和`static`方法、接口冲突等问题,明确设计目标,适度抽象,遵循接口设计原则,以提高代码质量。
10 1
|
2天前
|
Java
Java一分钟之-多态性:理解重写与接口
【5月更文挑战第9天】本文介绍了Java中的多态性,主要通过方法重写和接口实现。重写允许子类根据实际类型执行不同实现,关键点包括方法签名相同、访问权限不降低以及final、static和abstract方法不可重写。接口是抽象类型,包含抽象方法,提供另一种多态性实现。常见问题包括混淆重载与重写、不理解动态绑定以及滥用接口。为避免问题,需明确重写目的、合理设计接口,并在使用多态时注意类型检查。多态性是提升代码质量和灵活性的关键。
8 1
|
2天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
|
2天前
|
Java
Java 抽象类
5月更文挑战第4天
|
4天前
|
Java 开发者
在Java中,接口和超类在多态性中扮演着重要的角色
Java中的接口和超类支持多态性,接口作为规范,允许多继承和回调机制;超类提供基类,实现代码重用和方法重写,两者共同促进代码的灵活性和可维护性。
25 10
|
4天前
|
Java
接口在增强Java代码的灵活性方面起着关键作用
Java接口增强代码灵活性,实现多态性、解耦、多继承和扩展性。通过接口,类可隐藏实现细节,实现抽象化,促进模块化和维护性。接口定义方法,允许不同类实现,减少依赖,便于测试和修改。同时,接口提供多继承解决方案,使代码更具扩展性,易于添加新功能。
23 4