学习笔记-观光篇(继承与多态)
来源:互联网 发布:室内定位算法研究 编辑:程序博客网 时间:2024/06/05 00:11
今天在论坛上看了一个java的小程序,感觉跟经典,就记录了下来,希望对朋友们有多帮助
代码原文:
class Base{
int i = 99;
Base(){
amethod();
}
public void amethod(){
System.out.println("Base.amethod()");
}
}
public class Derived extends Base{
int i = -1;
public void amethod(){
System.out.println("Derived.amethod()");
}
public static void main(String args[]){
Base b= new Derived();
System.out.println(b.i);
b.amethod();
}
}
运行结果:
Derived.amethod()
99
Derived.amethod()
我对这段代码进行了调试,具体理解如下(只是自己的见解,如有不对,请朋友们指教了)
- Base b=new Derived(); 是用父类类型指向子类,new了一个子类的对象,创建对象的同时,调用了默认子类无参构造函数,子类构造函数调用父类无参构造函数,由于子类重写了amethod();(多态),所以调用了子类的amethod()方法输出Derived。amethod();(注意的是,b只能调用自身的方法,不能调用子类独有的方法)
- 方法存在多态性 ,属性没有多态性,System.out.println(b.i);,这里看b的类型,b是什么类型就调用谁的属性,输出99。(这里朋友们可以看看有关于动态关联的知识)
- b.amethod();这句代码主要看new出来的是谁,就掉用谁的方法(多态)。(需要注意的是由于是继承关系,有时子类中会有一些自身独有的方法,b不能掉用)。
- 学习笔记-观光篇(继承与多态)
- 继承与多态学习笔记
- C++学习笔记--继承与多态
- Java学习笔记:继承与多态
- [学习笔记]C#继承与多态
- 【Java学习笔记】基础知识学习10【继承与多态】
- java jdk7学习笔记:继承与多态
- java核心技术学习笔记7---继承与多态
- 黑马程序员-------java学习笔记之继承与多态
- c++学习笔记(12.继承与多态)
- C++学习笔记19 多态与继承
- C++学习笔记20 多态与继承下
- C++入门学习笔记(四)--继承与多态
- java学习笔记3_继承与多态
- Java学习笔记(4): 继承与多态
- Java学习笔记——类与对象(封装、继承与多态)
- C++之多态与继承学习笔记
- 学习C#的一些笔记(关于继承与多态,static关键字)
- Fedora8 关闭自动挂载
- 什么样的java代码容易memory leak?
- Java 与 C语言互调用用之简单实践
- JavaScript中this关键字使用方法详解
- Oracle锁机制
- 学习笔记-观光篇(继承与多态)
- 排序算法集合(4)- Python实现的N路归并排序算法
- Java学习书籍推荐
- 彼岸
- .net 反射
- 设为首页和添加收藏夹
- CMMI
- 2009-11-09 新增异常解决方案 - 我的异常网
- linux下必须掌握的命令