Java的继承

继承是面向对象的三大特征之一,使用extends关键字可以使一个类继承另一个类,Java中类只能单继承。

public  class Father {

    
}

class Son extends Father{
    
}


子类继承父类可以获得父类所有的属性和方法,但用private修饰的变量和构造器无法使用

//创建一个父类
class Father{
    //成员变量
    String name = "father";

    
    public void test() {
        System.out.println(name);
    };
}
//子类继承父类
class Son extends Father{
        
}


public class Test {

    public static void main(String[] args) {
        //创建子类实例
        Son s =  new Son();
                //调用test方法
        s.test();
        
    }
}

0.png

通过子类实例化对象调用test方法,子类中没有test方法会自动向父类中找test方法,所有的类都直接或间接的继承Object类

为什么要继承

继承可以减少大量重复的代理,使代码更简洁,提高代码的可复用性

super

当子类重写父类方法时,我们无法直接调用到父类方法,需要通过super关键字来调用


//创建一个父类
class Father{
    //成员变量
    String name = "father";

    
    public void test() {
        System.out.println(name);
    };
}
//子类继承父类
class Son extends Father{
    
    @Override
    public void test() {
        
        System.out.println("son");
        //在子类的test方法中通过super调用父类的test方法
        super.test();
    }
}


public class Test {

    public static void main(String[] args) {
        //创建子类实例
        Son s =  new Son();
                //调用test方法
        s.test();
        
    }
}

1.png

super可以调用非私有的父类方法父类属性,在构造器中第一句必定是super();调用父类无参构造器,没有写编译器会默认添加,写在非第一行会编译错误


//子类继承父类
class Son extends Father{
//  构造器
    public Son() {
        
//      super(); 隐式语句
    }
}   
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容