继承和多态
来源:互联网 发布:美国精神病人 知乎 编辑:程序博客网 时间:2024/04/27 23:15
继承和多态
一继承
class A extends B { }
A是子类,B是父类
特点:
子类自动获得了父类公有的属性和方法
子类可以对父类的方法进行修改(方法重写)
可以在子类中添加新的方法
使用super关键字来访问父类的成员(属性,方法)
父类中用protected 修饰的成员(属性和方法)也可以被访问
父类的私有成员子类不能继承但是可以访问
父类具有单根性,一个子类只能有一个父类
继承是代码重用的一种方式
父类中不能被子类继承的:
private 成员
子类与父类不在同包,使用默认访问权限的成员
构造方法
用final 关键字修饰的类,方法,属性
方法重写
在子类中重写父类的方法
1. 方法名,参数,返回值都不能变,一般访问权限也不要改变
2. 如果要调用父类的方法则要用super关键字
子类调用父类的构造方法:
super();---------------------------》可以默认添加
super(参数列表);
super只能是子类构造方法的第一条
子类继承父类后的访问顺序:
父类属性—>父类构造方法—>子类属性—>子类的构造方法
先从子类的构造方法中找父类的构造方法,接着去执行父类,执行完后再执行子类,这时子类构造方法的第一句(super())将不再执行。
方法重写与方法重载的比较
位置 方法名 参数列表 返回值 修饰符
重写 子类 相同 相同 无关 子类大于父类
重载 同类 相同 不同 无关 无关
Object类
它是java中最顶层的基类,在System.out.println( Oblect obj)
执行过程中,先调用toString,再打印出toString的结果
继承可提高程序的可扩展性和可维护性
二.多态
向上转型和向下转型
向上转型:父类类型接受子类实例(对象),转型时没有风险
1, Super sup = new Sub() 父类引用指向子类对象
2, void f(super s){
……;
}
f(new Sub();
向下转型:将父类类型的对象强制转换为子类类型,在转换过程中存在风险,通常在转换时要做判断,只有是这一子类类型的时候才进行强制转换,通常使用 instanceof运算符进行判断
用法: if(pet instanceof Cat){Cat cat =(Cat)pet;},此语句将Pet类型的对象pet强制转换为Cat类型
程序中的多态:同一个引用类型使用不同的实例而执行不同的操作
在设置程序的类型时尽量使用父类或接口。在多态中一定要有方法的重写
面向对象的设计原则:单一职责原则,开闭原则,里氏替代原则
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- 继承和多态
- Linux NFS服务器配置
- ajax请求示例
- 关于java中Pattern.compile函数的相关解释
- Linux SSH服务器架构
- 将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片
- 继承和多态
- jpeg文件结构简述
- eclipse常用命令整理
- 格式化Java文件
- Linux FTP服务器架构
- 揭开病毒的奥秘 DLL的远程注入技术详解
- JAVA Pattern和Matcher 的用法
- 在Visual C#中使用XML指南之读取XML
- Android中如何使用ViewPager实现类似laucher左右拖动效果