JavaSE之继承

2019-03-11  本文已影响0人  金石_832e

简述继承

Java中是单继承模式:

一个父类可以有多个子类,但是一个子类只能有一个父类。

继承:public class A extends B{}

A类称为子类,B类称为父类。A类具有B类拥有的属性和方法,除了构造方法、私有属性和私有方法。子类可以添加自由独有的属性和方法来拓展功能。

class Father{
String name ="父亲";
}
class Son extends Father{
String name ="儿子";
}
public class Demo{
public static void main(String args[]){
Son s =new Son();
System.out.println(s.name);
}
}
//结果为:儿子
//若注释掉String name ="儿子"; 结果为:父亲
继承带来的优点:

是一种代码重用的重要手段,也是实现“开闭原则”的基础,同时子类还可以添加自己独有的属性和方法,来拓展父类功能开闭原则,对拓展开放,对修改关闭。


重写和重载

重载:同一个类中,同名不同参的方法叫做重载。(编译时多态,静态多态,overload)
重写:子类中,同名、同参且返回值相同的方法叫做重写。子类的修饰符范围不小于父类的修饰符范围。(运行时多态,override)

class Employee {
    public Employee() {
    }

    void show() {
        System.out.println("父类show方法");
    }

    void show(String word) { // 重载
        word = "父类重载show方法";
        System.out.println(word);
    }
}


class Officer extends Employee {
    public Officer() {
        super();//调用父类构造
    }

    void show(String word) { // 重写
        word = "子类重载show方法";
        System.out.println(word);
    }
}

public class Demo1 {
    public static void main(String[] args) {
        Officer o = new Officer();
        o.show();
        o.show("haha"); 
    }
}

在重写父类的构造方法时,一定要看清父类的构造方法是否重载,根据需求写出子类的构造方法。(看清有参无参)

super作用:


面试题:请描述子类实例化过程

class Father {
    String name = "Father";
    public Father() {
        System.out.println("父类无参构造器");
    }
    public Father(int i) {
        System.out.println("父类有参构造器");
    }
}

class Son extends Father {
    String name = "son";
    public Son() {
        //super();//通过形参区别调用的父类的哪个构造器。
        super(1);
        System.out.println("子类构造器");
    }
}

public class Test {
    public static void main(String[] args) {
        Son s = new Son();
    }
}
答:在实例化子类对象时,会先调用父类的构造方法,实例化父类的对象。
输出结果为:父类有参构造器 
           子类构造器
上一篇 下一篇

猜你喜欢

热点阅读