Java的继承

1:
/**
 * 继承主要解决的问题是:共性抽取。
 * 继承关系当中的特点:1:子类可以拥有父类的“内容”;
 *                  2:子类可以拥有自己专有的类容;
 *继承语法:public class 子类 extends 父类;
 * extends:继承的意思。
 */
public class inheritance {
    public static void main(String[] args) {
        EmployeeSon son = new EmployeeSon();//建立一个子类对象
        son.method();//EmployeeSon里面虽然什么都没有写,但是会继承父类的method()方法。
    }
}

/**
 * super:就是父类,超类的意思。
 * 局部变量:         直接写成员变量名。
 * 本类的成员变量:     this.成员变量名。
 * 父类的成员变量:     super.成员变量名。
 */
class Employee{
    int num = 100;//父类的成员变量。
    public void method(){
        System.out.println("方法执行");
    }
}
class EmployeeSon extends Employee{
        int num = 200;//本类的成员变量。
    @Override//表示覆盖重写。
    public void method(){
        int num = 300;//局部变量。
        System.out.println(num);//局部变量。
        System.out.println(this.num);//本类的成员变量。
        System.out.println(super.num);//父类的成员变量。
    }
}

2:一个继承的小案例。

/**
 * 继承父类,添加新的内容
 * 覆盖方法的重写;
 */
public class inheritance002 {
    public static void main(String[] args){
        NewPhone com = new NewPhone();
        com.call();
        com.send();
        com.show();
    }
}
//老手机的功能;
class phone{
    public void call(){
        System.out.println("打电话");
    }
    public void send(){
        System.out.println("发短信");
    }
    public void show(){
        System.out.println("来电显示");
    }
}
//更新,定义一个新手机,继承老手机功能,然后添加新功能;
class NewPhone extends phone{
    public void show(){
        super.show();//把父类的方法拿过来;
        //添加自己的新功能。
        System.out.println("显示姓名");
        System.out.println("显示号码");
    }
}

3:继承关系中,父子类构造方法的访问特点。

/**
 * 继承关系中,父子类构造方法的访问特点;
 * 1:子类构造方法当中有一个默认的super();调用父类的构造函数。一定是先调用父类的构造函数,在调用子类的。
 * 2:子类构造通过super关键字来调用父类重载构造。
 * 3:super父类构造方法调用,必须是子类构造方法的第一个语句。不能一个子类构造方法调用多个super。
 * 4:子类构造方法必须调用父类构造方法,super只能有一个,必须是第一个语句。不写默认送super(),写了就用指定的super调用。
 */
public class inheritance003 {
    public static void main(String[] args) {
        zi mon = new zi();

    }
}
class fu{
    public fu(){
        System.out.println("父类构造方法");
    }
    public fu(int num){
        System.out.println("父类有参构造方法");
    }
}
//更新,定义一个新手机,继承老手机功能,然后添加新功能;
class zi extends fu{
    public zi(){
        //super();默认调用父类构造方法;
        super(10);//对应那个父类构造函数就调用哪一个。
        System.out.println("子类构造方法");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值