java继承各方法

···
语法:子类的名字extends 父类的名字

父类

package com.company;

public class UncleOne extends Uncle{
     public void chouyan(){
         System.out.println("大舅抽烟");
     }
     public void fahongbao(){
         System.out.println("");
     }
}

子类二:

package com.company;

public class UncleTwo extends Uncle{
    public void hejiu(){
        System.out.println("二舅000");
    }
    // 方法的重写 复写 覆写
    public void fahongbao(){
        System.out.println("二舅送");
    }
}

1.子类能够继承到父类所有的不是的私有属性和方法

2.子类能够复写父类的方法,如果没有复写,调用的是父类的方法,子类一旦复写,优先调用复写后的子类方法

3.除了复写,子类可以扩充父类没有的方法

优点:

1.实现代码的复用

2.有利于子类代码的扩展

多层继承

public class Uncle {
    private String name;
    private int age;

    public void fahongbao(){
        System.out.println("舅舅发红包");
    }
}

public class UncleOne extends Uncle{
     public void chouyan(){
         System.out.println("大舅抽烟");
     }
     public void fahongbao(){
         System.out.println("大舅发红包");
     }
}

public class UncleOneSon extends UncleOne{
    public void fahongbao(){
        System.out.println("大舅的儿子");
    }
}

类继承的加载顺序

先加载父类,在加载子类

祖先类的构造方法最先执行,祖先类最早被创建出来,其次是父类,最后是子类

在构造方法当中会隐性的调用super()超类 父类的无参构造方法

final 最终的 最后的

被final修饰的成员不可以被改写

  1. final修饰的变量值不能发生修改 PI=3.1415

    修饰基本数据类型,气质不能发生改变;修改引用数据类型,例如数组,数组中的值可以发生修改,但是数组名不能指向新的空间

  2. final修饰的方法不能被重写

  3. final修饰的类不能被继承

多态

一个父类有多个子类

把子类的对象赋值给父类的过程叫做向上转型

把父类的对象赋值给子类的过程叫做向下转型

语法:

正常语法:

类名 对象名 = new类名();

向上转型:

父类的类型 对象名 = new 子类的类名();

向下转型:

子类类型 对象名 = (子类类型) 父类的对象

// 向上转型
Uncle uncleOne1 = new UncleOne();
uncleOne1.fahongbao();

Uncle uncleTwo2 = new UncleTwo();
uncleTwo2.fahongbao();
//向下转型
Uncle uncle = new Uncle();
UncleOne temp =(UncleOne) uncle;

instanceof

判断对象是否是一个类的实例(具体的对象)

public class Demo02 {
    public static void main(String[] args) {
        UncleOne dajiu = new UncleOne();
        ganhuo(dajiu);

        UncleTwo erjiu = new UncleTwo();
        ganhuo(erjiu);

    }
    public static void ganhuo( Uncle uncle){
        if ( uncle instanceof UncleOne){
            System.out.println("出门外干活");
        }else if( uncle instanceof UncleTwo){
            System.out.println("在室内干活");
        }else {
            System.out.println("传入的不是舅舅,老太太没办法");
        }
    }
  }

···

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容