抽象类和接口
来源:互联网 发布:化妆品网络销售技巧 编辑:程序博客网 时间:2024/05/21 11:20
在进入抽象类和接口的内容前,先必要了解一下java中类和方法的分类,以及各种类和方法的用法和注意事项
一、方法分类
构造方法:public 类名(){}
用途:用于类对象的创建和属性方法的初始化
普通方法:public 返回类型 方法名(){}
用途:定义类对象的行为,要干啥
抽象方法:public abstract 返回类型 方法名();
用途:抽象方法没有具体的方法实现,用于被继承时重写。
二、类的分类
补充:属性类型:常量(public static final 类型 变量名 = 值,不可变)、变量(可变)
类分类:
普通类:public class 类名{}
方法:只能有普通方法和构造方法,一定不能有抽象方法
属性:可以随意定义变量和常量
构造对象:可以构造对象
抽象类:public abstract class 类名{}
方法:三种类型的方法都可以存在
属性:可以随意定义变量和常量
构造对象:不能构造对象
接口:public interface 类名{}
方法:只能有抽象方法,一定不能有普通方法和构造方法(接口没有构造方法)
属性:只能是常量
构造对象:不能构造对象
下表是关于三种类的用法类型
构造方法
普通方法
抽象方法
常亮
变量
创建对象
普通类
√
√
×
√
√
√
抽象类
√
√
√
√
√
×
接口
×
×
√
√
×
×
//A.javapublic class A{//普通类public String name;//变量public static final int age = 20;//常亮public A(){}//构造方法public void study(){}//普通方法}//B.javapublic abstract class B{//抽象类public String name;//变量public static final int age = 20;//常亮public B(){}构造方法public void study(){}//普通方法public abstract void play();//抽象方法}//C.javapublic interface C{//接口,全部为抽象方法,常量//abstract和static final可以省略//没有构造方法public static final int age = 20;public static final String name = "aa";public abstract void study();public abstract void play();}
注意:接口中的属性常量的修饰词static final可以省略
接口中的抽象方法的修饰词abstract可以省略
抽象类和接口有什么用?
用于被继承,当父类,不是用来创建对象的,而是约束子类方法定义
三、接口的继承
子类继承抽象和和接口的时候:一定要把父类的抽象方法,全部重写一遍
普通类继承抽象类:extends
普通类继承接口:implements
温馨提示:
如果以后大家遇到接口类,只能老老实实写个子类,去继承接口,并把方法都实现
//D.javapublic class D extends B{public void play(){}//重写方法} //E.java public class E implements C{public void study(){}//重写方法public void play(){}//重写方法}
- 抽象接口和抽象类
- 接口和抽象类
- 接口和抽象类
- 接口和抽象类
- 抽象类和接口
- 抽象类和接口
- 抽象类和接口
- 接口和抽象类
- 抽象类和接口
- 抽象类和接口
- 接口和抽象类
- 抽象类和接口
- 抽象类和接口
- 抽象类和接口
- 抽象类和接口
- 接口和抽象类
- 抽象类和接口
- 接口和抽象类
- OOM的出现及解决(加载图片)
- troubleshooting之解决JVM GC导致的shuffle文件拉取失败
- PHP,其他类型转化为对象、以及stdClass
- 文件搭建后找不到变量/函数定义问题
- Spring Boot获取前端页面参数的几种方式总结
- 抽象类和接口
- 自定义控件之滑动
- 集合-Stack
- poj-2318 TOYS (叉积)
- 数据结构_队列-循环队列实现模拟舞伴配对问题
- list与Set、Map区别及适用场景
- 斐波那契数列(迭代和递归)
- 物体定位Localization
- 全概公式和贝叶斯公式的理解