java技术从入门到精通(孙鑫)学习笔记-Lesson2(面向对象下).doc
《java技术从入门到精通(孙鑫)学习笔记-Lesson2(面向对象下).doc》由会员分享,可在线阅读,更多相关《java技术从入门到精通(孙鑫)学习笔记-Lesson2(面向对象下).doc(13页珍藏版)》请在三一文库上搜索。
1、类的继承l 理解继承是理解面向对象程序设计的关键。l 在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。l 在Java中,不允许多继承。class Animalint weihght,height;void eat()System.out.println(animal eat);void sleelp()System.out.println(animal sleep);void breath()System.out.println(animal breath);class Fish extends Animalclass Int
2、egrationpublic static void main(String args)Animal an=new Animal();Fish fh=new Fish();an.breath();fh.breath();调用编译器的命令为: javac Animal.java调用执行的命令为: java Integration注 :编译器的对象是java文件 执行的对象是 包含main方法的那个类运行结果为: animal breath animal breath方法的覆盖l 在子类中定义一个与父类同名、返回类型、参数类型相同一个方法,称为方法的覆盖。l 覆盖发生在子类与父类之间。注:方法的重
3、载发生在同一个类当中。class Animalint weihght,height;void eat()System.out.println(animal eat);void sleelp()System.out.println(animal sleep);void breath()System.out.println(animal breath);class Fish extends Animalvoid breath() /子类与父类的方法完全一致,发生覆盖。System.out.println(fish bubble);class Integrationpublic static voi
4、d main(String args)Animal an=new Animal();Fish fh=new Fish();an.breath();fh.breath();运行结果为: animal breath fish bubble特殊变量superl 特殊变量super,提供了对父类的访问。l 可以使用super访问父类被子类隐藏的变量或覆盖的方法。l 每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。class Animalint weihght,height;void eat()System.out.println(a
5、nimal eat);void sleelp()System.out.println(animal sleep);void breath()System.out.println(animal breath);class Fish extends Animalvoid breath()super.breath();System.out.println(fish bubble);class Integrationpublic static void main(String args)Animal an=new Animal();Fish fh=new Fish();an.breath();fh.b
6、reath();运行结果为: animal breath animal breath fish breathl 每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。class Animalint weihght,height;Animal()System.out.println(animal construct);void eat()System.out.println(animal eat);void sleelp()System.out.println(animal sleep);void breath()System.ou
7、t.println(animal breath);class Fish extends AnimalFish() /这里的super()被隐藏了,实际上子类的构造方法的第一句都隐含地调用super()System.out.println(fish construct);void breath()/super.breath();System.out.println(fish bubble);class Integrationpublic static void main(String args)/Animal an=new Animal();Fish fh=new Fish();/an.brea
8、th();/fh.breath();运行结果为了: animal construct fish construct class Animal /发现编译后报错int weight,height;Animal(int weight,int height)System.out.println(animal construct);void eat()System.out.println(animal eat);void sleelp()System.out.println(animal sleep);void breath()System.out.println(animal breath);cla
9、ss Fish extends AnimalFish()/super(); /*编译报错。因为构造方法是不能继承的,所以调用父类的构造方法就不能用 Animal()的形式,这就得借助super()来调用了。默认情况下,子类创建的构造函数的第一条语句就会调用super()方法,super()方法即代表父类的构造方法。现在子类Fish的构造方法中默认调用的是super(),但却在父类中找不到这样的构造函数,因为父类中只存在带参数的构造方法,这样造成不匹配就会在编译的时候报错。要解决这个问题就得解决匹配的问题,应在子类Fish的构造方法中定义带参数的super()方法如: super(30,40)
10、,见下面的修改的程序*/System.out.println(fish construct);void breath()/super.breath();System.out.println(fish bubble);class Integrationpublic static void main(String args)/Animal an=new Animal();Fish fh=new Fish();/an.breath();/fh.breath();class Animalint weight,height;Animal(int weight,int height)System.out.
11、println(animal construct);void eat()System.out.println(animal eat);void sleelp()System.out.println(animal sleep);void breath()System.out.println(animal breath);class Fish extends AnimalFish() super(40,50);System.out.println(f ish construct);void breath()/super.breath();System.out.println(fish bubble
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 技术 入门 精通 孙鑫 学习 笔记 Lesson2 面向 对象
链接地址:https://www.31doc.com/p-10613206.html