Java面向对象(多态、抽象类、接口)
来源:互联网 发布:ntfs for mac序列号 编辑:程序博客网 时间:2024/05/17 06:17
一、多态
多态就是一个事物有多种状态,比如(水:液态、固态、气态)
多态的三个前提:
1.有继承关系
2.方法重写
3.父类引用指向子类对象
父类引用指向子类对象:
1.访问变量:编译看左边,运行看左边
2.访问成员方法:编译看左边,运行看右边
3.访问静态方法:编译看左边,运行看左边
调用静态方法:可以通过类直接访问,也可以通过
对象访问,但本质是类名访问,所以调用静态方法
不存在多态,这个是一个假象。静态方法不算方法的重写
类型提升:
向上提升:小类型向大类型转换,父类 对象名 = new 子类();
向下转型: 父类引用上进行强制转换,子类 对象名 = (子类)父类对象名;
类型提升解决了多态的弊端,父类不能访问子类的独有的方法
多态的好处和弊端:
1.提高代码的维护性,由继承保证,大量的代码写在了父类中
2.提高程序扩展性:由多态保证
3.多态中父类不能访问子类中独有的方法
二、抽象类
抽象abstract,不是具体的一个物体,属于一类,要用抽象类来定义,在以后的工作中要考虑是
用抽象还是普通类
抽象类的注意事项:
有构造方法,不能进行实例化,要由具体的子类实例化,用多态实现
抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类
抽象类的成员:成员变量可以是变量,也可以是常量
成员方法:可以是普通方法,也可以是抽象方法
抽象类的子类可以有两种,一种可以是抽象类,一种可以是普通类,但是普通类要重写父类里的抽象方法
抽象类也可以有父类
abstract不能和哪些关键字一起用?
1.private:抽象类,希望别人实现方法,被private修饰会冲突
2.final:被final修饰以后不能重写方法
3.static
接口 interface,可以给一个类提供而外的功能,使用 implement 实现接口,也算是对继承只能单继承弊端的一个解决方法
接口中的成员只能是常量和抽象方法,要实现接口就要全部实现抽象方法
接口是能力的扩展,不会对本质产生影响
比如一个门,可以在门的基础上添加门铃,门铃就可以看作是对门能力的扩充,门铃就是一个接口
接口的注意事项:
接口主要是对能力的扩充,没有new构造方法
定义的变量在接口里会变成常量,所以标识符所有字母都要大写,有个隐藏的 public static final
java源码中很多都是用接口来写的,因为java不受行业约束
类和类的关系:
继承关系,只能单继承,不能多继承,能多层继承,不能多重继承
类和接口的关系:
实现关系,类来实现接口的方法,单实现也可以多实现
接口和接口的关系:
可以继承,多继承(没有讲)
抽象类和接口关系:
实现接口
抽象类可以有变量、常量、成员方法、抽象方法
接口只能有常量和抽象方法
0 0
- Java面向对象(多态、抽象类、接口)
- Java面向对象_多态(抽象类、接口)巩固
- 面向对象(多态、抽象类、接口)
- 【java】面向对象(类、抽象类、接口
- java面向对象,接口和抽象类.
- java面向对象二:抽象类、接口
- java--面向对象(抽象&接口)
- Java面向对象思想、类、抽象类、多态、接口
- java基础-面向对象(接口和抽象类)
- Java基础--面向对象(继承、抽象类、接口)
- Java面向对象编程(3)--抽象类,接口,final
- Java面向对象编程(3)--抽象类,接口,final
- java面向对象(三)之抽象类,接口
- JAVA总结(面向对象--抽象类、接口)
- java 面向对象 接口 抽象
- Java面向对象05-抽象方法,抽象类和接口
- Java基础(一):Java面向对象、面向对象封装、抽象类、接口、static、final
- Java基础(一):Java面向对象、面向对象封装、抽象类、接口、static、final
- iOS UITextField实用实现手机账号344格式 —— HERO博客
- 【学习ios之路:UI系列】ios中常见的几种控件.(UISlider,UISwitch,UIStepper,UISegmentedControl)
- Android 关于“NetworkOnMainThreadException”解决办法
- hibernate一对一对应关系
- setTimeout()&&setInterval()实例
- Java面向对象(多态、抽象类、接口)
- struts2笔试面试
- 操作系统学习笔记:I/O输入系统
- 闭包(1)初识闭包
- 继承与多态(二):重写函数
- Mac使用技巧
- R语言数据处理(一)
- 用文章和视频的app例子简介React-Native
- Windows下安装redis以及PHP redis扩展