继承、方法重写和多态
2014-08-09 22:22
288 查看
继承、方法重写和多态
(Alt+shift+s打开source资源编写get、set的调用方法)
子类只能继承一个父类(extends) ,即单根性,
继承具有传递性
(继承是达到了一种代码重用的作用)
super代表了父类对象,只能在子类中使用,super()表示父类构造函数,super.代表调用父类的属性
(如果有super()一定要放在第一句)
在继承体系里的初始化顺序是先创建父类对象再创建子类对象,
一个类里先给属性赋值,构造函数是最后给属性赋值。
执行顺序:(父类的属性->父类的构造函数->子类的属性->子类的构造函数)
(不能继承父类的情况) 1. 子类不能访问父类private成员
2. 子类与父类不在同包,使用默认权限的成员
3. 构造函数(方法)
符合is-a的关系设计
Private (本类)
Friendly默认 (本类、同包)
Protected (本类、同包、子类)
Public (本类、同包、子类、其他)
方法重载:同一个类里的同一方法,方法名一样但参数列表不同
方法重写:在继承关系的子类中,重新定义了父类的某个方法
规则:在继承体系的子类中,重写的方法名、参数、返回值类型必须与父类一致
私有方法不能继承,因而也无法重写。
1、Java中的使用抽象类,限制实例化(无法实现实例化)
(public abstract Person(){},所以就限制了Person的实例化)
抽象方法! @ 没有方法体{}的,仅仅是个声明,定义。 @抽象方法必须放在抽象类里面。 @ 继承了含有抽象方法的抽象类,就必须在子类中重写抽象方法! 除非子类也是个抽象类。
2、Final的用法,类不希望再被其他类继承,or方法不希望被重写,or属性不希望被修改, 是常量。
3、static 可以用来修饰属性、方法和代码块。
Static修饰的属性和方法称为类属性(类变量) 、类方法。
静态的方法,不用声明实例便可以运行
不使用static修饰的方法和属性属于单个对象,通常称为实例属性(实例变量) 、实例方法。
静态属性的初始化就一次(在第一次加载的时候),以后调用就不会再初始化了。
多态:同一个引用类型,使用不同的实例而执行不同的操作。(父类引用子类对象) 使用继承、子类重写父类的方法、父类引用子类、调用重写方法。
引用类型转换:
向上转型:父类引用子类,子类重写父类的方法,用多态
向下转型:强制类型转换,父类转换为子类,用instanceof
Object o= list.get(i);
if(o instanceof Show){
Show s=(Show)o;
s.service();
}
(Alt+shift+s打开source资源编写get、set的调用方法)
子类只能继承一个父类(extends) ,即单根性,
继承具有传递性
(继承是达到了一种代码重用的作用)
super代表了父类对象,只能在子类中使用,super()表示父类构造函数,super.代表调用父类的属性
(如果有super()一定要放在第一句)
在继承体系里的初始化顺序是先创建父类对象再创建子类对象,
一个类里先给属性赋值,构造函数是最后给属性赋值。
执行顺序:(父类的属性->父类的构造函数->子类的属性->子类的构造函数)
(不能继承父类的情况) 1. 子类不能访问父类private成员
2. 子类与父类不在同包,使用默认权限的成员
3. 构造函数(方法)
符合is-a的关系设计
Private (本类)
Friendly默认 (本类、同包)
Protected (本类、同包、子类)
Public (本类、同包、子类、其他)
方法重载:同一个类里的同一方法,方法名一样但参数列表不同
方法重写:在继承关系的子类中,重新定义了父类的某个方法
规则:在继承体系的子类中,重写的方法名、参数、返回值类型必须与父类一致
私有方法不能继承,因而也无法重写。
1、Java中的使用抽象类,限制实例化(无法实现实例化)
(public abstract Person(){},所以就限制了Person的实例化)
抽象方法! @ 没有方法体{}的,仅仅是个声明,定义。 @抽象方法必须放在抽象类里面。 @ 继承了含有抽象方法的抽象类,就必须在子类中重写抽象方法! 除非子类也是个抽象类。
2、Final的用法,类不希望再被其他类继承,or方法不希望被重写,or属性不希望被修改, 是常量。
3、static 可以用来修饰属性、方法和代码块。
Static修饰的属性和方法称为类属性(类变量) 、类方法。
静态的方法,不用声明实例便可以运行
不使用static修饰的方法和属性属于单个对象,通常称为实例属性(实例变量) 、实例方法。
静态属性的初始化就一次(在第一次加载的时候),以后调用就不会再初始化了。
多态:同一个引用类型,使用不同的实例而执行不同的操作。(父类引用子类对象) 使用继承、子类重写父类的方法、父类引用子类、调用重写方法。
引用类型转换:
向上转型:父类引用子类,子类重写父类的方法,用多态
向下转型:强制类型转换,父类转换为子类,用instanceof
Object o= list.get(i);
if(o instanceof Show){
Show s=(Show)o;
s.service();
}
相关文章推荐
- A.4-继承,方法重写(覆盖)(override),虚函数(virtaul)和多态,抽象方法和抽象类abstract,密封类(sealed)和密封方法,常量的定义(const)
- 类、对象、继承、封装、多态、方法的重载和重写、Java的访问修饰符与其它关键字
- 方法重写,继承,多态
- 多态理解,方法重写分析,类继承与接口实现中,方法重写的实现机制的区别
- 多态、继承---常量的覆盖和方法的重写
- Objective-C - 多态, 方法的重写, 多态和继承
- 2016/08/11 继承 方法重写 多态
- java 继承 方法重写 自动转型 多态 接口 抽象类
- 封装、继承、多态与重写及方法
- 构造器、方法重载、继承、方法重写、自动转型、多态课堂笔记
- 类小结1:方法重载 变量 封装 import 继承 重写父类方法 调用父类构造方法 多态
- 面向对象,类的组合关系,继承,实现,方法重写,方法重载,this的使用,抽象方法和抽象类的比较,父类构造方法存在的意义,多态的是用和解析,各种访问修饰符
- JAVA【类】析构器、重载与继承、方法的重写、自动转型、多态、方法与类的分类、接口继承
- JAV中一些基本概念:构造函数、方法重载、继承、方法重写、多态。
- 子类继承父类,重写父类方法,运用多态时调用重写的方法时调用子类的还是调用父类的?
- java 继承 方法重写 自动转型 多态 接口 抽象类
- 关于ActionScript 3.0 中方法重写和继承的发现(运行时多态,原理同Java)
- JAVA 继承、方法重写、多态学习笔记
- JAVA面试题解惑系列(九)——继承、多态、重载和重写
- 重载,继承,重写和多态的区别