类、抽象类、接口

1.类
变量(静态和非静态)
常量方法(静态和非静态)
构造方法
游离块
静态块
内部类(静态和非静态)
2.抽象类
类中可以定义抽象类都可以定义
抽象方法
特点:不能创建对象,不是因为没有构造器或者构造器私有
3.接口
① 接口的概念
接口是功能的集合,同样也是一种引用数据类型,是比“抽象类” 更为抽象的类
接口只描述所应具备的方法,并没有具体的实现。
个人认为:接口是一种身份的象征,例如实现Runnable接口,你就是一个线程类;实现Cloneable接口,就可以克隆;实现 Comparable<引用类型>,就可以比较
② 接口的特点
1. 接口中定义变量(公有静态常量),默认是 public static final修饰 其值不能改变 基本数据类型, 值不能改变 引用数据类型,地址不能改变
2. 接口中定义抽象方法,抽象方法可以省略掉 public abstract JDK1.8以后可以定义 static 方法 和 default 方法
3. 接口不可以创建对象。
4. 实现类,必须实现接口中所有的抽象方法,才能创建对象。 若不想实现接口中的所有的抽象方法,可以选择把自己定义成抽象类
5. 类 与 类 单继承 extends 一个 子类 只能拥有 一个 父类
类 与 接口 多实现 implements 一个实现类,可以实现多个接
接口 与 接口 多继承 extends 一个接口可以继承多个 父接口
一个类 同时继承一个父类,实现多个接口
③接口 和 抽象类的区别
相同点: 都是位于继承的顶端,用于被其他类继承或者实现 都不能实例化对象(都不能创建对象) 都可以定义抽象方法,其子类(实现类)实现这些抽象方法
不同点:
在这里插入图片描述

抽象类接口在面向对象编程中存在紧密联系。 抽象类是一种特殊的,如果一个中存在抽象方法,那么该就必须声明为抽象类,例如`public abstract class Person { public abstract void work(); }` [^4]。这表明抽象类本质上还是,具备的一些基本特性,只是它包含了抽象方法,不能被实例化,需要子去继承并实现其中的抽象方法。 接口是特殊的抽象类是继承(extends)关系,接口是实现(implements)关系,其实本质都是继承 [^3]。接口是一种“引用数据型”,完全抽象,支持多继承,一个接口可以继承多个接口接口中只有常量和抽象方法,所有元素都是public修饰的,抽象方法的`public abstract`可以省略,常量的`public static final`可以省略,方法不能有方法体 [^3]。 从继承和实现的角度看,普通可以继承抽象类,实现抽象类中的抽象方法;普通也可以实现接口,实现接口中的抽象方法。接口可以被其他接口继承,进一步扩展功能。 以下是一个简单的Java代码示例展示它们的联系: ```java // 定义一个接口 interface MyInterface { void methodInInterface(); } // 定义一个抽象类 abstract class MyAbstractClass { abstract void methodInAbstractClass(); } // 定义一个普通继承抽象类并实现接口 class MyClass extends MyAbstractClass implements MyInterface { @Override public void methodInInterface() { System.out.println("实现接口中的方法"); } @Override void methodInAbstractClass() { System.out.println("实现抽象类中的方法"); } } public class Main { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.methodInInterface(); myClass.methodInAbstractClass(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值