ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:147.11KB ,
资源ID:9658262      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9658262.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java基础3.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java基础3.docx

1、java基础3Java基础三1、继承: Test9.javapublic class Test9 public static void main(String args) Person teacher = new Teacher(老师1,22,老师); teacher.eat(); /teacher.teaching();因为teacher是Person类型,Person类中看不到子类扩展的方法teaching方法。 Person student = new Student(学生1,23,学生); student.eat(); class Person String name; int age

2、; String job; public Person() public Person(String name,int age,String job) this.name = name; this.age = age; this.job = job; public void eat() System.out.println(this.name+在吃); class Student extends Person public Student(String name,int age,String job) this.name = name; this.age = age; this.job = j

3、ob; public void studing() System.out.println(this.name+在学习); class Teacher extends Person public Teacher(String name,int age,String job) this.name = name; this.age = age; this.job = job; public void teaching() System.out.println(this.name+在讲课); 上面的程序说明:要想让我们的Teacher类和Student类也是Person,必须将Teacher类和Stu

4、dent类通过关键字“extends”继承Person类,此时Teacher类和Student类也是一种Person了。我们子类(导出类)就可以省略父类中已经定义的属性和功能了,子类并且可以扩展父类(基类)。程序中的高亮处表示:Student和Teacher也是Person。但是上面的引用只能访问属性Person中的功能,子类扩展的该引用看不到。2、重写: Test9.javapublic class Test9 public static void main(String args) Person monk = new Monk(释永信,45,花和尚); monk.eat(); class

5、Person String name; int age; String job; public Person() public Person(String name,int age,String job) this.name = name; this.age = age; this.job = job; public void eat() System.out.println(this.name+在吃肉包子。); class Monk extends Person public Monk(String name,int age,String job) this.name = name; thi

6、s.age = age; this.job = job; public void eat() if(花和尚=job) super.eat(); System.out.println(this.name+在吃素包子。); 上面的程序说明:子类继承父类之后,如果对父类中方法的实现不满意,可以重写,即是方法的名称和接收的参数类型都不可以发生变化,唯一可以改变的是:1、访问级别可以大于等于,但是不能小于原有的方法的访问级别;2、方法的实现可以修改。如果修改之后,无论引用的类型是父类还是子类,只要实例化的对象是子类对象,那么调用的方法永远都是调用子类中的方法。这就叫重写。3、继承关系中方法的调用: Te

7、st9.javaclass Monk extends Person public Monk(String name,int age,String job) this.name = name; this.age = age; this.job = job; public void kongfu() System.out.println(this.name+在练功); class Person String name; int age; String job; public Person() public Person(String name,int age,String job) this.na

8、me = name; this.age = age; this.job = job; public void eat() System.out.println(this.name+在吃肉包子。); public class Test9 public static void main(String args) Monk m = new Monk(唐僧,49,和尚); m.eat();/Monk.eat(m); m.kongfu();/Monk.kongfu(m); 上面的程序说明:如果子类的引用访问方法时:先从子类找该方法,如果子类没有该方法,它会去父类找这个方法,如果没有,还要继续往父类的父类

9、找,直到找到Object类,如果都没找到才报错。4、继承中属性的访问 Demo1.javapublic class Demo1 public static void main(String args) Base b = new Base(); System.out.println(访问属于自己的:+b.name); SubClass sc = new SubClass(); System.out.println(子类对象访问:+sc.name); class Base String name = name of base.; class SubClass extends Base 上面的程序说

10、明:当用子类对象访问属性时,如果子类不存在该属性,会进一步去其父类中访问。如果父类有,就用父类的;没有的化,继续去父类的父类找,直到找到Object类。最后到Object都没有的化,就报错了。 Demo1.javapublic class Demo1 public static void main(String args) Base b = new Base(); System.out.println(访问属于自己的:+b.name); SubClass sc = new SubClass(); System.out.println(子类对象访问:+sc.name); class Base S

11、tring name = name of base.; class SubClass extends Base String name = name of SubClass.; 上面的程序说明:如果用子类的对象访问属性,如果子类有,就用子类的。没有才去父类找。 Demo1.javapublic class Demo1 public static void main(String args) Base b = new Base(); System.out.println(访问属于自己的:+b.name); SubClass sc = new SubClass(); System.out.prin

12、tln(子类对象访问:+sc.name); Base b2 = new SubClass(); System.out.println(父类引用指向的是子类对象:+b2.name); class Base String name = name of base.; class SubClass extends Base/SubClass也是Base。 String name = name of SubClass.; 上面的程序说明:属性的访问和对象本质上没有关系,访问属性就看引用的类型,引用是什么类型的,就从那个类中找起,如果找到就用,找不到,去其父类找。 Demo1.java 属性和方法的区别p

13、ublic class Demo1 public static void main(String args) Base b = new Base(); System.out.println(访问属于自己的:+b.name); b.print(); System.out.println(*); SubClass sc = new SubClass(); System.out.println(子类引用访问属性:+sc.name); sc.print(); class Base String name = name of base.; public void print() System.out.p

14、rintln(print method of Base.); class SubClass extends Base/SubClass也是Base。 String name = name of SubClass.; 上面的程序说明:如果用子类对象访问方法时,如果子类没有该方法,会进一步去其父类调用方法,如果还是没有,去其父类的父类找,一直找到Object类。都没找到就报错,在哪个类找到,就调用哪个类中的方法。 Demo1.javapublic class Demo1 public static void main(String args) Base b = new Base(); System

15、.out.println(访问属于自己的:+b.name); b.print(); System.out.println(*); SubClass sc = new SubClass(); System.out.println(子类引用访问属性:+sc.name); sc.print(); System.out.println(*); Base b2 = new SubClass(); System.out.println(父类的引用(指向的是子类对象)调用属性+b2.name); b2.print(); class Base String name = name of base.; publ

16、ic void print() System.out.println(print method of Base.); class SubClass extends Base/SubClass也是Base。 String name = name of SubClass.; public void print() System.out.println(print method of SubClass.); 上面的程序说明:方法的调用和属性的调用是不同的,如果父子类中都有该方法,到底使用的方法是父类的还是子类的,由引用指向的对象决定,如果对象是子类对象,即使引用是父类型的,方法依然调用子类的方法。和

17、属性不同。属性是由引用的类型决定的。原因是子类和父类都有相同方法时,如果我们实例化的是子类对象,那么子类就重写了父类中同名的方法,即方法重写。5、 抽象类 Demo2.javapublic class Demo2 public static void main(String args) new Person(); abstract class Person/要做的事自己不会做、或不愿意做,找别人做。 abstract public void cooking(String caidan); 写Person类的目的:某人想做某种事情,但是自己又不知该如何做。只能靠别人帮助自己来做。我们要通过抽象方

18、法来定义要想做的事情,那么该方法所在的类要声明为抽象类,抽象类不能实例化。 Demo2.javapublic class Demo2 public static void main(String args) Person whz = new Student(范祥); whz.cooking(西红柿炒鸡蛋); abstract class Person/我们想吃东西,但是自己不会做,或不愿意做,等别人做。 abstract public void cooking(String caidan);class Student extends Person String name; Student(St

19、ring name) this.name = name; public void cooking(String name) System.out.println(this.name+为你做了+name); Person类不会cooking或者不愿意cooking,找Student类为他cooking。6、接口:是描述一种能力的类型。和类、抽象类都是有区别的。 Demo3.javapublic class Demo3 public static void main(String args) Person p = new Student(学生A); p.eat(); Student st = ne

20、w Student(学生B); st.eat(); st.study(); Studable sa = new Student(学生C); sa.study(); sa = new Cooker(厨师A); sa.study(); class Person String name; Person(String name) this.name = name; public void eat() System.out.println(this.name+蹲在墙角吃了一顿饭。); interface Cookable public void cooking();interface Studable

21、public void study(); class Student extends Person implements Studable Student(String name) super(name); public void study() System.out.println(学习普通文化知识。); class Cooker extends Person implements Cookable,Studable Cooker(String name) super(name); public void cooking() System.out.println(专业做饭。); public void study() System.out.println(学习厨艺。); 上面的程序说明:1) java不支持多继承,但是支持多实现。意思是:一类事物只能有一种类型,而不能有多种类型。但是一类事物可以具备多种功能。2) 接口描述的是能力。而不是类型。3) 一类事物要想具备多种功能,可以实现接口,因为接口描述的就是功能。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1