黑马程序员---继承(包括final关键字以及接口的介绍)
2013-04-11 09:33
253 查看
------- android培训、java培训、期待与您交流! ----------
继承
1,提高了代码复用性
2,让类与类之间产生了关系,有了这个关系,才有了多态的特性。
有所属关系才可以继承,不要为了获取其他类的功能简化代码而继承。
Extends
Java语言中,java只支持单继承,不支持多继承。Java中用另一种(多实现)来完成多继承功能。
因为多继承容易带来安全隐患:当多个父类中定义了相同功能但功能内容不确定时,子类对象不知道运行哪一个。
支持多层继承。
要使用继承体系:查阅父类功能,创建最子类对象使用功能。
子父类出现后,类成员的特点
类成员
1,变量
2,函数
3,构造函数
变量
如果子父类中出现非私有同名成员变量时,子类访问本类对象用this,要访问父类中的同名变量用super
函数
构造函数
构造函数名跟类名一样,所以子父类构造函数不能覆盖
子类的实例化过程
子类的所有构造函数默认都会访问父类中空参数的构造函数(子类每一个构造函数内第一行都有一句隐式super())
当父类中没有空参数的构造函数时,子类必须通过手动super语句形式来指定访问父类中的构造函数。子类的构造函数第一行也可以手动指定this来访问本类中的构造函数,
子类中至少会有一个构造函数来访问父类中的构造函数。
Final关键字
Final:修饰符
1,可以修饰类,函数,变量
2,被final修饰的类不可以被继承
3,被final修饰的函数不可以被覆盖(复写)
4,被final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量也可以修饰局部变量 final int x=3; x总为3 常量书写规范:所有字母大写,单词间用_连接。
抽象的特点:
抽象类不可以用new创建对象,因为调用抽象方法没意义
抽象类中方法要被使用必须由子类复写所有抽象方法后建立子类对象调用
如果只覆盖了部分抽象方法,那么该子类还是一个抽象类
Abstract void study();
具体子类实现的功能是不一样的所以用abstract修饰一下,子类具体以复写(覆盖)形式执行
获取当前系统时间System.currentTimeMillis()
模板方法设计模式
需要子类去自己做的暴露出去
接口
可以理解是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
Class 用于定义类
Interface用于定义接口
格式特点
1,接口中常见定义:常量,抽象方法。
2,接口中的成员都有固定修饰符:
常量:public static final
方法:public abstract
记住:接口中的成员都是public的
Interface Inter
{
Public static final int NUM=3;
Public abstract void show();
}
会默认格式,但是为了增强阅读性需要按格式写
实现接口的功能,和子父类相似
只有接口与接口之间才可以多继承 子类要实现父类里没有的功能就用implement实现接口interface。
继承
1,提高了代码复用性
2,让类与类之间产生了关系,有了这个关系,才有了多态的特性。
有所属关系才可以继承,不要为了获取其他类的功能简化代码而继承。
Extends
Java语言中,java只支持单继承,不支持多继承。Java中用另一种(多实现)来完成多继承功能。
因为多继承容易带来安全隐患:当多个父类中定义了相同功能但功能内容不确定时,子类对象不知道运行哪一个。
支持多层继承。
要使用继承体系:查阅父类功能,创建最子类对象使用功能。
Class Person { String name; Int age; } class Student extends Person { Void study() { S.o.p() } }
子父类出现后,类成员的特点
类成员
1,变量
2,函数
3,构造函数
变量
如果子父类中出现非私有同名成员变量时,子类访问本类对象用this,要访问父类中的同名变量用super
函数
构造函数
构造函数名跟类名一样,所以子父类构造函数不能覆盖
子类的实例化过程
子类的所有构造函数默认都会访问父类中空参数的构造函数(子类每一个构造函数内第一行都有一句隐式super())
当父类中没有空参数的构造函数时,子类必须通过手动super语句形式来指定访问父类中的构造函数。子类的构造函数第一行也可以手动指定this来访问本类中的构造函数,
子类中至少会有一个构造函数来访问父类中的构造函数。
Final关键字
Final:修饰符
1,可以修饰类,函数,变量
2,被final修饰的类不可以被继承
3,被final修饰的函数不可以被覆盖(复写)
4,被final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量也可以修饰局部变量 final int x=3; x总为3 常量书写规范:所有字母大写,单词间用_连接。
抽象的特点:
抽象类不可以用new创建对象,因为调用抽象方法没意义
抽象类中方法要被使用必须由子类复写所有抽象方法后建立子类对象调用
如果只覆盖了部分抽象方法,那么该子类还是一个抽象类
Abstract void study();
具体子类实现的功能是不一样的所以用abstract修饰一下,子类具体以复写(覆盖)形式执行
获取当前系统时间System.currentTimeMillis()
模板方法设计模式
需要子类去自己做的暴露出去
接口
可以理解是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
Class 用于定义类
Interface用于定义接口
格式特点
1,接口中常见定义:常量,抽象方法。
2,接口中的成员都有固定修饰符:
常量:public static final
方法:public abstract
记住:接口中的成员都是public的
Interface Inter
{
Public static final int NUM=3;
Public abstract void show();
}
会默认格式,但是为了增强阅读性需要按格式写
实现接口的功能,和子父类相似
只有接口与接口之间才可以多继承 子类要实现父类里没有的功能就用implement实现接口interface。
相关文章推荐
- 黑马程序员_Java基础_面向对象(继承、子父类变量和函数以及构造函数特点、final关键字、抽象类、模版方法模式、接口)
- 黑马程序员 Java基础 面向对象:继承、final关键字、抽象类、模版方法模式、接口、多态、Object类
- 黑马程序员——Java基础:继承、final关键字、抽象、接口、多态
- 黑马程序员_java的继承性- 继承-final关键字-抽象类-接口-多态-异常-包-多线程-
- 黑马程序员——第7天——(面向对象)继承,final关键字,抽象类,接口
- 黑马程序员—Java面向对象(单例设计模式、面向对象的继承、final关键字)
- 黑马程序员-关于类的继承问题与final关键字的一些感悟
- Java学习日记-5 关键字static和final 以及接口
- 黑马程序员—继承与final关键字
- 关于static静态的、继承、接口interface、final关键字、单例设计模式总结
- Swift - final关键字的介绍,以及使用场景
- Java基础(面向对象三——继承、final关键字、抽象类、接口)
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- 黑马程序员—— 5,继承,子父类,抽象类,接口,final,模板设计
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- 【转】java关键字final ,抽象类、接口介绍
- 黑马程序员———面向对象之继承super和final关键字
- Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)
- JAVA基础day07 继承 final关键字 抽象类 接口 的学习
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍