配色: 字号:
《Java面向对象程序设计》07 继承写字字帖
2023-05-25 | 阅:  转:  |  分享 
  
目标理解继承的概念和作用掌握继承的语法掌握继承在面向对象程序编程的应用掌握super关键字概述面向对象编程的三大基本特点是:封装、继承和多态
在Java中一个类可以从另一个类继承或派生 新类可以通过继承,从现有的类中吸收其属性和行为,产生新类所需的功能 继承提供了重复利
用程序资源的一种途径 基类与派生类两个类的基本成员中可能存在一部分相同的情况 class People{ private St
ring name; private char sex; private int age; …… public v
oid print(){ System.out.println("姓名:"+name); System.out
.println("性别:"+sex) System.out.println("年龄:"+age); }}class
Worker{ private String name; private char sex; private int
age; private String skill; private double wage; …… publi
c void print(){ System.out.println("姓名:"+name); System.
out.println("性别:"+sex) System.out.println("年龄:"+age); S
ystem.out.println("技能:"+skill); System.out.println("工龄:"+wag
e); }}基类与派生类通过继承机制,可以利用现有的类来定义新的类 从一个旧类派生一个新类的机制称为继承新类不仅拥有新定义的成
员,同时还拥有被继承的类的成员基类 (或父类,超类)派生类 (或子类)基类与派生类动物继承关系类图派生类 is a 基类基类
与派生类继承关系举例:继承的基本语法关键字extends表示继承 class Base { …… } class Sub e
xtends Base { …… }继承的基本语法示例:从Animal类派生Dog类class Animal { prot
ected int age; //保护型访问权限 public void Animal(){ age = 1; }
public void say(){ System.out.println("动物的叫声!"); }}class Dog
extends Animal { public void wagTail(){ System.out.println("摇
尾巴……"); }} //使用Dog类 Dog fido = new Dog(); fido.say(); fido.w
agTail();访问控制 Java定义了访问控制规则,限制从类外部使用类成员 Java中提供了四种访问修饰符:public
(公有)protected (保护)默认 (包级作用域)private (私有)访问控制
访问控制规则如果可以预见所编写的类将来是用作一个基类,那么除了公有的部分之外,派生类可能需要访问的所有属性或方法应该被声明为保护的
继承中的构造方法基类的构造方法不能被派生类继承派生类的构造方法在执行自己的任务之前将会调用基类的构造方法。调用分两种:显式调用隐式
调用继承中的构造方法显式调用:在派生类构造方法的第一句使用super关键字来指定调用基类的哪个构造方法super(); //调用基
类的默认构造方法 super( 实参 ); //调用基类带参数构造方法 隐式调用:如果没有显式调用,则自动调用基类的默认构造方法,
相当于显式调用super(); 继承中的构造方法在Animal和Dog类中添加构造方法class Animal { //基类
protected int age; public Animal(){ age = 1; } public Anima
l(int age){ this.age = age; } ……}class Dog extends Animal{
//派生类 protected String breed; public Dog(String breed){ //隐式调用
this.breed = breed; } public Dog(int age,String breed){
super(age); //显式调用 this.breed = breed; }}Dog d1
= new Dog("金毛狗");……Dog d2 = new Dog(3, "大麦町犬");……继承中的构造方法继承中的构造方法
需要注意:派生类构造方法的调用顺序为:先调用基类的构造方法,再调用派生类的构造方法当基类中有默认构造方法时,派生类的构造方法中可以
省略对基类的默认构造方法的调用当基类的构造方法中只有含参数的构造方法时,派生类构造方法中必须要使用super关键字显式调用基类的构
造方法继承中的构造方法子类构造方法典型错误class Base{ int a; public Base(int a){
this.a = a; }}class Sub extends Base{ int b; public Sub(int b)
{ //编译错误 this.b = b; }}解决方法:在基类添加默认构造方法在子类显式调用基类构造方法继承层次结构Jav
a语言不支持多继承,即一个类只能直接继承一个类 //以下代码会导致编译错误class Sub extends Base1,Base
2,Base3 { … }一个类可以有多个间接基类class Base1 extends Base2 { … }class S
ub extends Base1 { … }继承层次结构所有的Java类都直接或间接地继承了java.lang.Object类
Object类是所有Java类的祖先,在这个类中定义了所有Java对象都具有的相同行为 继承层次结构在Java类框图中,具有继承
关系的类形成了一棵继承树 生物继承树 继承层次结构假如在定义一个类时,没有使用extends关键字,那么这个类直接继承Object
类 public class Sample { …… }Sample类的直接基类为 Object总结继承是从现有类派生
新类的过程。继承最重要的优点是代码的可重用性基类也可以称为父类(或超类),派生类也可以称为子类Java只允许单继承,继承使用关键字extendsJava提供了4种访问修饰符(private, 默认, protected, public) 来限制从类外部使用类成员基类的构造方法不能被继承,在派生类的构造方法中应负责调用基类的构造方法。super关键字用于显式调用基类的构造方法
献花(0)
+1
(本文系大高老师首藏)