~~~
继承:
继承的概述:
1.提高了代码的复用性,简化了代码
2.让类与类之间产生了继承关系,才有了后面的多态特性的存在
3.注意:千万不要为了获取其他类的功能简化代码,而建立继承关系,必须要类与类之间存在继承关系,继承关系:is a
~~~
~~~
package obj.b6;
//父类,超类,基类
class Person{
String name;
int age;
}
//子类
class Student extends Person{
void study(){
System.out.println("学习");
}
}
class Teacher extends Person{
void teach(){
System.out.println("教书");
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
~~~
~~~
继承概述_2
子类拥有父类的成员,子类不能拥有父类中被private修饰后的成员
~~~
~~~
java多层继承 在多层继承中最下层拥有整个继承体系的成员,最上层的父类里面定义了所有子类的共性描述
~~~
~~~
java中不支持多继承,只支持单继承。因为多继承存在安全隐患,当多个父类定义了相同的成员,子类对象不确定运行哪一个。
但java保留了这种机制,并用了另一方式来体现 多实现(接口?)
~~~
子父类成员特点
成员:
1.成员变量
2.函数
3.构造函数
![](https://box.kancloud.cn/b80be2e03fd2411948720688cd787ab4_1007x580.png)
~~~
变量:
this 代表当前对象的引用this.变量 首先在本类中找所需要的这个变量,如果没有找到再到父类中找。
super 用于访问当前对象的父类成员,super.变量 直接父类中找所需的变量
1.子类覆盖父类时,必须保证子类的权限大于等于父类,才可以覆盖,否则编译出错
访问权限修饰符:public>default>private 成员前面没加任何权限修饰符默认权限就是default
2.静态的函数只能覆盖静态的
记住:
重载:只看同名方法的参数列表
重写:子父类方法要一模一样
有了子父类之后构造方法的特点:
在对子类对象进行初始化的时候,父类的构造方法也会运行,那是因为子类的构造函数默认第一行有一条隐式的语句super();
子类的每个构造方法第一行都有一个隐式的super();
~~~
~~~
package obj.b7;
//父类,超类,基类
class fu{
String name;
fu(){
System.out.println("父类构造方法");
}
}
//子类
class zi extends fu{
zi(){
//super();
System.out.println("子类构造方法");
}
}
public class Test {
public static void main(String[] args) {
zi z=new zi();
}
}
~~~
![](https://box.kancloud.cn/27778b342bb1aea0f42ebdbeda36497c_144x93.png)
~~~
package obj.b7;
//父类,超类,基类
class fu{
String name;
fu(){
System.out.println("父类构造方法");
}
fu(int age){
System.out.println("父类有参构造方法");
}
}
//子类
class zi extends fu{
zi(){
//super();
super(18);
System.out.println("子类构造方法");
}
}
public class Test {
public static void main(String[] args) {
zi z=new zi();
}
}
~~~
![](https://box.kancloud.cn/d45fb0eabfece09a14b6b8e111ac55cd_157x58.png)
- 书写心得
- 1.初识Java
- 2.变量、数据类型和运算符
- 实例:数据的输入
- 实例:变量互换
- 3.条件选择结构
- 案例:判断年份是否为闰年
- 案例:生成随机数
- 实例:剪刀石头布
- 4.循环结构
- 实例:猜数字游戏
- Myeclipse
- 实例:九九乘法表
- 实例:日历
- 5.数组
- JVM内存分析
- 键盘录入赋值数组
- 数组的length属性
- 数组的最大值(打擂台)
- 数组的排序
- 数组复制算法
- 数组的查找算法(搜索)
- 数组的插入算法
- 数组的冒泡算法
- 数组的选择排序
- 多维数组
- 实例:学生成绩管理系统
- 类和对象
- 概念
- 内存分析
- 创建类和对象
- 面向对象与内存分析
- 有参数无(有)返回值的调用
- 成员变量
- return和多参方法
- toString方法
- this关键字
- 封装
- 方法的重载
- 构造方法
- 阶段性总结
- 实例:学生管理系统
- Test.java
- Student.java
- Admin.java
- 构造代码块及构造函数之间的调用
- main方法和静态应用工具类及classpath
- static关键字
- 文档注释和静态代码块及单例模式
- 继承
- 多态
- 匿名对象和toString()和equals及final
- 抽象类和模板方法设计模式
- 接口
- 包机制和包与包之间的访问权限和jar包