类的继承剖析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
public class testOverWrite { public static void main(String args[ ]) { circle c1; c1=new circle(1,1,1); System.out.println(c1.area( )); } } 结果:3.141592653589793 思考:怎样修改让它执行父类中的area()?结果是什么? * 7、关键字final 在实例变量、局部变量和方法的形参定义之前加上final,那么这个变量值只能被引用,而不能修改。在JAVA中被final修饰的变量最好用大写。 全局常量定义: Public static final 变量类型 变量名 例:public static final double PI=3.1415926; class Base{ final int x=1; // 形式1:修饰实例变量? void print(final int y ){ // 形式2:修饰参数 System.out.println(x+y); } } public class finalVariables{ public static void main(String [ ] args){ final int var=100; // 形式3:修饰局部变量 Base obj=new Base( ); obj.print(var); } } 结果: 101 (1)Final修饰变量 * (2)final方法 在方法定义前加上final,该方法就不能被子类覆写,成为终极方法 ; Class中所有的private和static方法自然就是final的。 包含终极方法的类仍然可以被子类继承 93 * (3)final类 在一个类定义前加上final,意味着这个类就不能被其它类继承,成为终极类。 系统类基本上都是final类,如String类。 将class定义为final是为了杜绝继承,类中的方法自然都变成了终极方法。 思考 一个类如何去继承另一个类? 一个类继承另一个类时,究竟继承了什么? 类的继承有什么好处? 每个类都有父类吗? 如果类定义时无 extends 部分,该类的父类是? 多个子类可以继承自一个父类吗? 一个类可以同时继承多个父类吗? 若不希望父类中的某成员被子类所继承,如何实现? 根类 Object 在哪个软件包中? 对象的初始化时,父类的什么样的构造方法能自动执行? 如何主动调用父类的构造方法?调用父类构造方法语句应置于何处? 父类构造方法的执行时机? 通过extends关键字来表示两个类之间的继承关系 实现代码复用 每一个类都有父类 类定义时无extends部分说明该类的父类是Object。 多个子类可以继承自一个父类 一个类只可以继承一个父类 用privatel修饰,表明该成员不能被继承 在java.lang包中 无参的构造方法被自动执行 通过super()调用,子类构造方法的第一句 子类new运算符创建对象时执行 继承了非private的成员变量和成员方法,构造方法不可以继承。 作业: 一、设计类。要求如下: 1、编写一个Animal类,包含: 属性: private String type;//动物叫声 构造方法: //用于初始化私有属性type 方法: public String toString() //输出动物类型信息 public String sound() //输出动物叫声的信息 2、编写Dog(狗)类,继承Animal类,并覆盖Animal的sound()方法,输出自己的叫声。. 3、编写测试类,打印输出狗的类型和叫声信息 * * * * * * * * * * * * * * * L o g o L o g o * * 第7讲 类的继承 1、无继承时多类协作 对象组合实现代码复用 class A{ public double circleArea(double r){ return Math.PI * r * r; } } class B{ double r1,r2,r3; B(double a,double b,double c){ r1 = a;r2 = b; r3 = c; } } class Test { public static void main(String[] args){ B b = new B(2, 3.5, 2.5); A a = new A(); System.out.println(a.circleArea(b.r1)); System.out.printl

文档评论(0)

美洲行 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档