Java学习进程5

Java学习进程5 Java学习进程5递归递归1.方法调用自己本身2.设置递归的退出条件(使用递归时一定要有出口)example实现斐波拉契数列到100的和。packagecom.yw.oop0606;/** * author YAN * date 2026/6/6 19:07 * description */publicclassdigui{//递归方法实现斐波那契数列publicstaticintf(intn){//递归出口if(n1||n2){return1;}//f(n)f(n-1)f(n-2)returnf(n-1)f(n-2);}publicstaticvoidmain(String[]args){//输出前100项for(inti1;i100;i){System.out.print(f(i) );}}}类的继承继承基础知识继承的格式publicclass子类(派生类)extends父类(基类超类)implements接口,接口,,,{}注先写继承再写接口关于接口的内容见Java学习进程2继承后的作用(同包下)子类会继承父类中所有的非private的属性和方法但私有属性和方法不能直接调用。继承的特点1.Java中每个类都会默认继承 Object。2.方法1定义set方法设置属性2定义get方法获取属性。3.Java 是单继承语言一个子类只能直接继承一个父类。如... extends A,B是错误的4.可继承权限如下权限从高到低修饰符 本类 同包类 子类 任意类public ✅ ✅ ✅ ✅protected ✅ ✅ ✅ ❌默认不写 ✅ ✅ ❌ ❌private ✅ ❌ ❌ ❌5. 构造方法不能被继承6.子类创建对象时优先执行父类构造方法(super访问父类方法)方法重写(Override)作用当前父类中的方法不能满足当前子类的需求条件有继承关系的两个类之间访问修饰符大于等于父类返回值类型方法名参数类型(个数顺序)完全一样example// 父类 StudentpublicclassStudent{privateStringname;protectedvoidsetName(Stringn){namen;}publicStringgetName(){returnname;}publicvoidprintName(){System.out.println(名字name);}publicvoidstudy(){System.out.println(name正在学习);}}// 子类 UNStudent 继承 StudentpublicclassUNStudentextendsStudent{OverridepublicvoidprintName(){// 保留父类原有功能super.printName();// 子类新增功能System.out.println(这是子类重写后的名字输出);}Overridepublicvoidstudy(){// 保留父类中原有的功能调用父类方法//super 表示当前类的父类对象super.study();// 子类新增功能System.out.println(大学生还在自学编程);}}super关键字属性访问父类成员变量super.方法()调用父类成员方法即保留父类原有功能super()调用父类构造方法必须放在子类构造第一行在子类的调用方法中一定要调用一次父类的构造方法子类默认调用父类的构造方法final和staticstatic静态变量类变量不需要通过对象访问final类不能被继承绝育类方法不能被重写关于转型1.自动转型向上转型父类 对象变量名 new 子类继承后子类可以是父类类型自动转型问题转型后只能调用子类中的方法2.强制转型向下转型要求该对象先进行了自动转型父类不能强制转为子类