教材学习内容总结
1.子类和父类
a.继承是一种由已有的类创建新类的机制
b.java不支持多重继承,即子类只能有一个父类
一般类(父类:公有属性) |
子类(子类:继承/新定义的属性和行为) |
c.class 子类名 extends 父类名{}
2.子类的继承性
a.子类和父类在同一个包中继承性:子类自然地继承了其父类中不是private的成员变量和方法
b子类和父类不在同一个包中继承性:子类自然地继承了其父类中不是private和friendly的成员变量和方法
c.protected的进一步说明:
以上情况obiect对象可以访问protected成员变量和方法
3.子类和对象
a.子类构造方法创建对象->父类的成员变量也被分配空间
b.关于instance of:对象 instance of 类(左边对象是否为右边的类或子类所创建的对象)返回ture or false
4.成员变量的隐藏和方法重写
a.
子类 | 父类 |
成员变量同名 | |
隐藏从父类继承的成员变量 | |
子类对象以及子类自己定义的方法操作子类重新声明的成员变量 | |
子类继承的方法所操作的成员变量是被子类继承或隐藏的成员变量 |
b.
子类继承自父类的方法访问/调用 | 子类新定义的方法访问/调用 |
继承和隐藏的成员变量 | 继承和新声明的成员变量 |
用super关键字操作隐藏的成员变量 |
c.方法重写(方法覆盖):可以隐藏已继承的方法
语法规则:返回类型/父类的子类型(返回类型为类类型) 方法名(参数个数、类型):与父类一样
注:假如People只一个父类,它的子类可以为Student,即子类型为Student
重写方法是否能操作 | |
继承成员变量和方法 | Yes |
子类定义的成员变量和方法 | Yes |
被子类隐藏的成员变量和方法 | No |
注意事项:重写父类方法时,不允许降低方法的访问权限,可以提高访问权限
5.super关键字
a.用super操作被隐藏的成员变量和方法
b.使用super调用父类的构造方法:如果子类的构造方法没有明显的指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法,且子类不继承父类的构造方法
6.final关键词
a.final+成员变量|局部变量=常量
b.final class 类名{}:该类不能被继承,不能有子类
c.父类中:final+方法:不允许子类重写改方法
7.对象上转型对象
class B extends A{}
A a;
B b=new B();
a=b;
a是b的上转型对象
上转型对象是否操作 | |
子类新增的成员变量和方法 | No |
子类继承或隐藏的成员变量 | Yes |
子类继承的方法或子类重写的实例方法(子类对象调用这些方法) | Yes |
a.父类创建对象(不一定等于)子类对象的上转型对象
b.对象上转型对象强制转换到子类对象:子类名 子类对象=(子类名)父类对象名 此时子类对象具备子类所有属性与功能
c.不允许:子类 对象=父类创建对象的引用
d.
8.继承与多态
上转型是多态的表现形态,多态性是指父类的某个方法被其子类重写,可以各自产生自己的功能行为
9.abstract类和abstract方法
a.用关键字abstract修饰的类成为abstract类(抽象类)
b.abstract方法只允许声明不允许实现(没有方法体)
c.因为abstract类要被继承,abstract方法要被重写·,所以不允许final 和 abstract 同时修饰一个方法或类 ,也不允许 static 修饰 abstract方法(即abstract方法必须是实例方法)
abstract类 |
abstract方法 |
非abstract方法 |
d.abstract类不能用new运算符创建对象
e.非abstract类继承abstract类时,它必须重写abstract方法(即去掉abstract,给出方法体),如果是abstract类继承abstract类,可以重写/继承abstract方法
10.面向抽象编程
使用多态进行程序设计的核心技术之一是使用上转型对象,即将abstract类声明的对象作为其子类的对象的上转型对象,那么这个上转型对象就可以调用子类重写的方法
教材学习中的问题和解决过程
子类继承/新定义/重写的访问的访问权限容易混淆:画图分析
上转型对象的访问权限:画图分析
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
目标 | 5000行 | 20篇 | 400小时 | 会用java语言独立设计程序 |
第一周 | 13/13 | 1/1 | 5/5 | 学会使用jdk以及对java源程序语句的基本注意事项有所了解 |
第二周 | 140/143 | 1/2 | 10/15 | 学会java基本数据类型与数组和c语言/c++在表达和用法上的相同/不同之处 |
第三周 | 276/419 | 1/3 | 20/35 | java中运算符,表达式和语句的表现形式,类的声明,定义方法 |
第四周 | 600/1019 | 1/4 | 30/45 | 类和对象 |
第五周 | 150/1169 | 1/5 | 10/55 | 继承的作用,子类和父类的继承性,子类继承父类后方法的访问权限以及各种操作 |
参考文献
《java2实用教程(第5版)》