java学习笔记-继承与接口
来源:互联网 发布:企业开淘宝店怎样记账 编辑:程序博客网 时间:2024/06/05 11:32
(一)继承
什么情况下用继承:
当子类和父类出现同样的函数时,子类函数重写(覆盖)父类函数.覆盖方法:
1.子类覆盖父类,必须保证子类权限大于等于父类.
2.静态只能覆盖静态.
重写和重载
重载:只看同名函数的参数列表.
重写:方法一摸一样.
子父类中的构造函数:
构造函数跟着类名走.在对子类对象进行初始化时,父类的构造函数也会进行.那是因为子类的构造函数默认第一行有一条隐式的语句super(),这个super()会访问父类中空参数的构造函数,而且子类中的所有构造函数默认第一行都是super()
为什么子类一定要访问父类中的构造函数.
因为父类中的数据子类可以直接获取,所以子类对象在建立时,需要先查看父类是如何对这些数据如何初始化的.
所以子类在对象初始化时,要先访问一下父类中的构造函数.
如果要访问父类中指定的构造函数,可以通过手动定义super语句的方式指定.
子类调用父类的成员函数和构造函数的方式:
成员函数的调用:super.show()
构造函数的调用:super(name);
super语句必须写在第一行.
结论:
子类的多有的构造函数,默认都会访问父类中空参数的构造函数.
因为子类每一个构造函数内的第一行都有一行隐式的super()
当父类中没有空参数的构造函数时,子类必须手动通过super形式来指定要访问父类中的构造函数.
当然,子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数,子类中至少会有一个构造函数访问父类中的构造函数.
父类的构造函数第一行也有一个super语句,父类继承的是object
关于权限关键字和在继承中的作用
public:在任何处都可以调用
private:只能在本类中调用
protected:子类中或者同一个包内使用。
privat也能被子类继承 但是 子类无法访问父类的私有属性 或 方法
子类继承是继承父类的所有东西 除了构造函数
final:最终,作为一个修饰符.
1,可以修饰类,函数,变量.
2,被fianl修饰的类不可以被继承.为了避免被继承,被子类复写功能.
3,被final修饰的方法不能被复写.
4,被fianal修饰的变量是一个常量只能赋值一次,就可以修饰成员变量,有可以修饰局部变量.
例如:
class A{
final int x=3;//x的值不能被改变了.
void show(){
final int y=3;//y的值不能被改变.
}
}
当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起一个名字.方便于阅读.
而这个值不需要改变,所以加上final修饰.
抽象类:
当多个类中出现相同功能,但是功能主体不同.
这是可以进行抽取,这时只抽取功能定义,而不抽取功能主体.
抽象类中即能定义抽象方法也能定义非抽象方法
abstract void sutdy();抽象类的特点:
1,抽象方法一定在抽象类中
2,抽象方法和抽象类都必须abstract关键字修饰.
3,抽象类不可以用new创建对象,因为调用抽象方法没意义.抽象方法没方法体.
4,抽象类中的抽象方法要被类使用,必须由子类复写起所有的抽象方法后,建立子类对象使用.如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类.
抽象类比一般类多了个抽象函数,抽象类中可以不定义抽象方法,这样做不让该类创建对象.
抽象类不可以实例化.
(二)接口
当抽象类中的方法都是抽象的,那么该类可以通过接口的形式表示.
class用于定义类
interface用于定义接口
实现用implements
接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法.
2,接口中的成员都有固定修饰符.
常量:public static final
方法:public abstract;
接口中的成员都是public 的.
接口:是不可以创建对象的,因为有抽象方法.
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化.
接口可以被类多实现
//接口可以多继承
接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
如果在事物之间有共性就用抽象类,特性就用接口
接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法.
2,接口中的成员都有固定修饰符.
常量:public static final
方法:public abstract;
接口中的成员都是public 的.
接口:是不可以创建对象的,因为有抽象方法.
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化.
接口可以被类多实现
//接口可以多继承
接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
如果在事物之间有共性就用抽象类,特性就用接口
0 0
- java学习笔记-继承与接口
- java学习笔记<一> 继承与接口
- java 学习笔记 继承与接口(二)
- 学习笔记 继承与接口的学习
- Java学习笔记(继承、接口)
- Java从入门到精通学习笔记---第八章 接口、继承与多态
- java继承与接口
- Java 继承与接口
- java继承与接口
- java学习笔记<六>继承与组合
- JAVA学习笔记(十)- 封装与继承
- java 继承与组合学习笔记
- Java学习笔记:继承与多态
- Java学习笔记之继承与初始化
- Java学习笔记_005_封装与继承
- Java学习笔记之继承和接口(二) 继承和多态、接口
- Java学习笔记-对象-继承-接口-多态-内部类
- JAVA学习笔记之继承,多态和接口
- javascript最烦人的错误TypeError: string is not a function
- Cocos2dx 学习笔记30 Cocos开发中性能优化工具(三):Visual Studio内存泄漏检测工具(Visual Leak Detector)
- 普元nui.encode
- Ceph中Paxos 算法的由来
- 【Android】开机自启动
- java学习笔记-继承与接口
- 数据挖掘Data Set收集以及做研究
- cordova安装手册
- Android Service完全解析,关于服务你所需知道的一切(上)
- linux shell 技巧
- 给想提高的ios程序员一些建意
- android应用多线程守护让你很难杀死它
- android学习之利用MediaPlayer制作音乐播放器
- 校园助手APP--昨天看代码发现了一个好东西——UncaughtExceptionHandler