- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java基础教程10
Person Student 继承的定义 继承:指以原有的类为基础来创建一个新类,从而实现代码重用。 被继承的类是:超类或父类 继承而来的类是:子类 注意:1、没有extends,默认父类为Object 2、只有一个父类,即单继承 3、类继承具有传递性 class A {} class B extends A {} class C extends B {} 其中,B类继承A类,C类继承B类,那么C类也间接继承了A类 继承的实现 1、java中类是一个层次结构,其中Object类是所有类的根,java中所有的类都直接或者间接继承Object类 2、子类可以继承父类的非私有成员变量和非私有方法,但不继承父类的构造方法。 测试继承 类一次只能继承一个父类(单继承) 使用“是一个(is a)”短语验证继承 Person和Student的继承是正确的 一个Student是一个Person 测试继承 错误原因:不满足“ is a” 短语 正确原因:满足“ is a” 短语 super是什么 super用来引用父类的实例对象 主要用途: 用于访问父类中非private的成员变量和成员方法,如: super.variable; super.method(参数列表); (2)用于调用父类的构造方法,如: super(参数列表); 使用时,必须放在第一句! 查看结果:OverTest.java this是什么? this的应用一 让类的成员变量名和对其进行赋值的成员方法的局部变量同名是必要的,这样的代码谁看了都能明白这两个变量是彼此相关的。见书p125 class Person { String name; public Person(String name) { name=name; } } this的应用二 构造方法不能被显示调用,但是可以在一个构造方法中调用其它重载的构造方法,用this(参数列表)的形式。 此时,先执行this表示的构造方法,再执行自己。 注意:在调用其它的构造方法的时候,使用this(参数列表)必须是构造方法中的第一条语句,并且在一个构造方法中最多只能调用一个其他的构造方法。 想一想: 1)为什么this(参数列表)和super(参数列表)不能同时出现在同一个构造方法中? 2)为什么this(参数列表)和super(参数列表)只能作为构造方法中的第一句出现? 子类与父类构造方法的关系 1、在子类的构造方法中可使用语句super(参数列表) 调用父类的构造方法。 2、如果子类的构造方法中没有显式调用父类的构造方法,也没有使用this关键字调用重载的其他构造方法, 则在产生子类实例的时候系统会默认调用父类的无参数的构造方法。 3、如果子类的构造方法中没有显式调用父类的构造方法,而父类中又没有定义无参数的构造方法(只有当父类没有显式定义任何构造方法时,才会有默认的构造方法),则编译出错。 切记!! 因此:我们在定义类的时候,只要定义了有参数的构造方法,通常就还需要定义一个无参数的构造方法。 覆盖父类的方法 子类可以根据需要对父类中继承来的方法进行改造——这就是方法的覆盖 覆盖方法必须和被覆盖方法具有相同的方法名称,参数列表和返回值类型 覆盖方法时,不能使用比父类中被覆盖方法更严格的访问权限! 如:父类中的方法是public的,子类中覆盖方法就不能为private的 final关键字 在Java中关键字final可以用于修饰类、成员变量和方法 final标记的类不能被继承。 final标记的方法不能被子类覆盖。 final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。 final 关键字修饰成员变量 常量:如果变量被标记为final,其结果是使它成为常量,只能被赋值一次。 public class Bank { private final double DEFAULT_RATE = 3.2 ; final Box myBox1=new Box(); public static final int a=20; …… } final 关键字 方法 final方法无法被覆盖,即给方法加锁。 类 final类没有子类,即不能被继承。 小结 定义成员变量的格式: [访问权限] [static] [final] 类型 变量名; abstract关键字 用abstract关键字 来修饰一个类时,这个类叫做抽
文档评论(0)