抽象类和接口及final关键字
2016-06-02 11:27
190 查看
final关键字:
1.final可以修饰类、成员(属性和行为),局部变量
2.被final修饰的类不可以被继承
3.被final修饰的方法不可以被复写
4.被final修饰的变量是一个常量,只能赋值一次
5.内部类在局部时,只能访问被final修饰的局部变量
抽象类:
将方法声明向上抽取,该方法没有主体,需要被abstract关键字修饰。
抽象方法一定要存在抽象类中。
特点:
1.抽象类不可以用new关键字实例化。
2.抽象类需要被子类复写所有的抽象方法后,该子类才可以被实例化,否则该子类还是抽象类。
注意:
1.抽象类中有构造函数,用于给子类进行初始化的。
2.抽象类中可以没有抽象方法,那么该类存在的目的就是不让其实例化。
3.抽象类和一般类的定义描述是一样的;不一样的是抽象类中可以存放抽象方法;还有不可以被实例化。
示例:
abstract class Demo{
void show1(){}
abstract void show2();
}
abstract关键字
不能和哪些关键字共存:
1.final
2.static
3.private
接口:
特点:
1.接口用于功能的扩展。
2.接口其实就是对外暴露的规则。
3.接口的出现降低了耦合性。
好处:
1.接口的出现,保留了多继承机制,用多实现来表示。
2.接口可以继承多个接口。
3.一个类在继承一个类的同时,可以实现多个接口。
代码规则:
使用interface关键字定义。编译后生成的.class文件。
接口中通常的成员:常量、抽象方法。
这些成员都有固定的修饰符。
常量:public static final.
方法:public abstract .
注意:
1.复写接口中的方法是,一定要用public修饰。
2.一个类必须实现接口中所有的方法后,才可以被实例化,否则该类还是一个抽象类。
接口定义示例:
interface AbsDemo{
public static final int X=3;
public abstract void show1();
public abstract void show2();
}
类实现接口示例:
class SubDemo implements AbsDemo{
public void show1(){}
public void show2(){}
}
抽象类和接口的不同:
抽象类可以定义体系,接口用于扩展。
1.final可以修饰类、成员(属性和行为),局部变量
2.被final修饰的类不可以被继承
3.被final修饰的方法不可以被复写
4.被final修饰的变量是一个常量,只能赋值一次
5.内部类在局部时,只能访问被final修饰的局部变量
抽象类:
将方法声明向上抽取,该方法没有主体,需要被abstract关键字修饰。
抽象方法一定要存在抽象类中。
特点:
1.抽象类不可以用new关键字实例化。
2.抽象类需要被子类复写所有的抽象方法后,该子类才可以被实例化,否则该子类还是抽象类。
注意:
1.抽象类中有构造函数,用于给子类进行初始化的。
2.抽象类中可以没有抽象方法,那么该类存在的目的就是不让其实例化。
3.抽象类和一般类的定义描述是一样的;不一样的是抽象类中可以存放抽象方法;还有不可以被实例化。
示例:
abstract class Demo{
void show1(){}
abstract void show2();
}
abstract关键字
不能和哪些关键字共存:
1.final
2.static
3.private
接口:
特点:
1.接口用于功能的扩展。
2.接口其实就是对外暴露的规则。
3.接口的出现降低了耦合性。
好处:
1.接口的出现,保留了多继承机制,用多实现来表示。
2.接口可以继承多个接口。
3.一个类在继承一个类的同时,可以实现多个接口。
代码规则:
使用interface关键字定义。编译后生成的.class文件。
接口中通常的成员:常量、抽象方法。
这些成员都有固定的修饰符。
常量:public static final.
方法:public abstract .
注意:
1.复写接口中的方法是,一定要用public修饰。
2.一个类必须实现接口中所有的方法后,才可以被实例化,否则该类还是一个抽象类。
接口定义示例:
interface AbsDemo{
public static final int X=3;
public abstract void show1();
public abstract void show2();
}
类实现接口示例:
class SubDemo implements AbsDemo{
public void show1(){}
public void show2(){}
}
抽象类和接口的不同:
抽象类可以定义体系,接口用于扩展。
相关文章推荐
- [Android L]SEAndroid开放设备文件结点权限(读或写)方法(涵盖常用操作:sys/xxx、proc/xxx、SystemProperties)热门干货
- 面试题汇总。
- ActionBarDrawerToggle的onOptionsItemSelected方法
- Java排错随笔
- three.js 相关概念
- Gulp学习指南之CSS合并、压缩与MD5命名及路径替换
- Struts2---OGNL表达式和EL表达式
- [Flex] IFrame系列 —— IFrame嵌入html后Alert弹出窗口被IFrame遮挡问题
- 用grunt搭建自动化的web前端开发环境-完整教程
- detection/region/object prosoal方法综述文章
- 千变万化的viewpager
- Jenkins+Maven+SVN快速搭建持续集成环境(转)
- 集合
- redis集群
- Dashgo D1概述
- sloth(标点工具)使用说明
- 深入理解Linux 内核 chp 2 内存寻址
- Android Material 风格的 Dialog
- 分布式一致性协议Raft原理与实例
- [leetcode] 263. Ugly Number