Java基本概念-抽象类和接口
来源:互联网 发布:程序员资料网站 编辑:程序博客网 时间:2024/06/03 16:34
一 抽象类
1 抽象类:abstract修饰的类,为继承和多态设计,在继承中充当父类,抽象类不允许实例化,即不能new
2 抽象方法:使用abstract修饰的方法,抽象方法不允许有方法实现,即方法实体{ }
3 在Java中,如果类中包含抽象方法时,类就必须是抽象类,但抽象类中可以没有抽象方法,只有普通方法
4 父类中的抽象方法,在子类中必须实现(即在子类中必须重写父类的抽象方法),否则子类也必须是抽象类,抽象类不允许实例化
5 通常将父类定义成抽象类,通过抽象方法要求子类必须有某种行为
6 抽象类可以有实例变量,以及一个或多个构造方法,这些构造方法不能被用来创建实例,抽象类的构造方法可以被其子类用super调用
二 接口
1 接口:接口和类是并列概念,使用关键字interface修饰的是接口,使用关键字class修饰的是类,
2 接口中的所有成员都不允许修改:接口中定义的变量默认为常量,即默认被public static final修饰,不能进行再一次赋值
接口中的方法都是为继承而设计的,方法不能实现,即默认被public static修饰,接口中的方法在子类中必须全部实现
3 在Java中,一个类只能直接继承一个父类,但可以实现多个接口,接口相当于父类
4 约束毫不相关的类有相同的行为时,可以实现一个接口
5 类可以被继承,接口只能被实现,一个类可以同时实现多个接口,实现多个接口时,接口之间用逗号分隔
6 抽象类和接口的比较:两者都为继承而生,提高了代码复用
a 抽象类是单继承的,接口可以被实现多个
b 抽象类中的方法包括普通方法和抽象方法,接口中只能是抽象方法
c 抽象类中的变量包括常量和普通变量,接口中的变量只能是常量
d 定义抽象类的关键字是abstract,定义接口的关键字是interface
e 抽象类的继承关键字是extends,接口的实现的关键字是implement
f 抽象类中可以有普通方法的实现,接口中不能有方法的实现
三 final关键字
1 final修饰的类,表示最终类,不能被继承有子类
2 final修饰的方法,不能在子类中重写
3 final修饰的变量为常量,不能被重新赋值
4 在Java中,常量的命名一般都是用大写字母,多个单词之间用下划线分隔
5 final类有:String类,System类,Java.util.Scanner类
6 final与abstract相反
四 内部类
1 定义在一个类内部的类,只能在外部类的内部使用
2 内部类可以被static修饰,也可以被public修饰
五 匿名类
1 没有名称的类
2 匿名类内部不用定义类文件和具体类名,只需在实例化接口或抽象类时,实现接口和类的抽象方法
3 匿名内部类的实现是一次性的,不能代码重用
4 直接实例化接口,必须使用匿名内部类对接口中的方法进行实现
5 运行时,new 接口时JVM会自动定义一个类,该类会实现接口
1 抽象类:abstract修饰的类,为继承和多态设计,在继承中充当父类,抽象类不允许实例化,即不能new
2 抽象方法:使用abstract修饰的方法,抽象方法不允许有方法实现,即方法实体{ }
3 在Java中,如果类中包含抽象方法时,类就必须是抽象类,但抽象类中可以没有抽象方法,只有普通方法
4 父类中的抽象方法,在子类中必须实现(即在子类中必须重写父类的抽象方法),否则子类也必须是抽象类,抽象类不允许实例化
5 通常将父类定义成抽象类,通过抽象方法要求子类必须有某种行为
6 抽象类可以有实例变量,以及一个或多个构造方法,这些构造方法不能被用来创建实例,抽象类的构造方法可以被其子类用super调用
二 接口
1 接口:接口和类是并列概念,使用关键字interface修饰的是接口,使用关键字class修饰的是类,
2 接口中的所有成员都不允许修改:接口中定义的变量默认为常量,即默认被public static final修饰,不能进行再一次赋值
接口中的方法都是为继承而设计的,方法不能实现,即默认被public static修饰,接口中的方法在子类中必须全部实现
3 在Java中,一个类只能直接继承一个父类,但可以实现多个接口,接口相当于父类
4 约束毫不相关的类有相同的行为时,可以实现一个接口
5 类可以被继承,接口只能被实现,一个类可以同时实现多个接口,实现多个接口时,接口之间用逗号分隔
6 抽象类和接口的比较:两者都为继承而生,提高了代码复用
a 抽象类是单继承的,接口可以被实现多个
b 抽象类中的方法包括普通方法和抽象方法,接口中只能是抽象方法
c 抽象类中的变量包括常量和普通变量,接口中的变量只能是常量
d 定义抽象类的关键字是abstract,定义接口的关键字是interface
e 抽象类的继承关键字是extends,接口的实现的关键字是implement
f 抽象类中可以有普通方法的实现,接口中不能有方法的实现
三 final关键字
1 final修饰的类,表示最终类,不能被继承有子类
2 final修饰的方法,不能在子类中重写
3 final修饰的变量为常量,不能被重新赋值
4 在Java中,常量的命名一般都是用大写字母,多个单词之间用下划线分隔
5 final类有:String类,System类,Java.util.Scanner类
6 final与abstract相反
四 内部类
1 定义在一个类内部的类,只能在外部类的内部使用
2 内部类可以被static修饰,也可以被public修饰
五 匿名类
1 没有名称的类
2 匿名类内部不用定义类文件和具体类名,只需在实例化接口或抽象类时,实现接口和类的抽象方法
3 匿名内部类的实现是一次性的,不能代码重用
4 直接实例化接口,必须使用匿名内部类对接口中的方法进行实现
5 运行时,new 接口时JVM会自动定义一个类,该类会实现接口
0 0
- Java基本概念-抽象类和接口
- java学习笔记(3)基本概念之抽象类和接口
- Java 抽象类,抽象方法和接口
- Java抽象类和抽象方法、接口
- Java接口和抽象类
- java接口和抽象类
- java 接口和抽象类
- java接口和抽象类
- JAVA抽象类和接口
- java抽象类和接口
- java抽象类和接口
- Java:抽象类和接口
- java接口和抽象类
- Java 抽象类和接口
- JAVA抽象类和接口
- java抽象类和接口
- java接口和抽象类
- JAVA抽象类和接口
- Hawq学习笔记 --- MPP(大规模并行处理)架构(Massively Parallel Processing)
- MySQL语句增加字段,修改字段名,修改类型,修改默认值
- V4包遇见的一些问题
- Android 防界面劫持方案,无视Android系统版本限制,无需操作栈
- python题目-----import module和from import选择
- Java基本概念-抽象类和接口
- yum和编译两种方式升级or降级Centos内核
- 几种智能指针的比较(std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::weak_ptr)
- cocos2dx3.x 使用libluacocos2d库 问题
- 欢迎使用CSDN-markdown编辑器
- 横向的GridView
- Windows下导出postgres数据
- 为文件打补丁
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)