Java入门-07、继承、抽象类

类的继承,以及类的调用

extends 子类继承父类

super 调用父类的变量或者方法

子类父类的重名函数的覆盖(重写)

子类创建的对象调用重名函数:子类的重名函数会覆盖掉父类的函数,即执行的是子类中的重名函数方法体

class A{
    int a=10;
    public A(){}
    public void ADemo(){
        System.out.println("这是A父类");
    }

    //重名函数Print
    public void Print(){
        System.out.println("这是父类的重名函数!");
    }
}

class B extends A{
    int b=10;
    //构造方法的话,先执行父类的构造方法初始化参数,在子类中有隐藏的super调用父类构造方法
    public B(){}
    public void BDemo(){
        //子类中调用父类的变量
        super.a=20;
        //子类中调用父类的方法
        super.ADemo();
        System.out.println(a);
        System.out.println("这是B子类");
    }

    public void Print(){
        System.out.println("这是子类的重名函数!已经覆盖父类的函数");
    }
}

public class Extends {
    public static void main(String[] args) {
        B b = new B();
        b.ADemo();
        b.BDemo();
        //子类调用重名函数
        b.Print();

        /*除非用父类创建对象,才可以调用父类中的重名函数
        A a = new A();
        a.Print();*/

    }
}

定义抽象类以及抽象方法

抽象类的作用一般是:

方便开发者知道调用方法的数量以及方法的作用,便于修改

//定义抽象类CxA 以及抽象方法run
public abstract class CxA {
    public abstract void run();
}
//抽象类的方法的具体实现
public class CxB extends CxA{

    @Override
    public void run() {
        System.out.println("run抽象函数的实现");
    }
}
//调用run方法
public class CxC {
    public static void main(String[] args) {
        CxB cxB = new CxB();
        cxB.run();
    }
}
发布了14 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/NeverFG/article/details/97612642