Java三大特性 ---- 继承

Java三大特性 ---- 继承

    继承背后的思想是基于已经存在的类来构建新类,当从已存在继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新的类以应对新的需求。从其他类导出来的类叫子类,被导出来的类叫父类。在java中,除了Object类之外,所有类都是子类,都有唯一的父类。
    类之间的关系:
  1. Is-a 继承体现
  2. Has-a组成体现
  3. Like-a实现接口的体现
    继承意义:
  1. 代码重用
  2. 体现不同的层次
     继承的优点:
  1. 代码重用
  2. 父类字段和方法可用于子类
  3. 从抽象到具体形成类的继承体现
  4. 可轻松定义子类。
    继承使用的关键字 —extends

例子:

package com.javabase.lx;


/**
 * 继承的一个小例子
 */
public class Demo01 extends Father {
    @Override
    public void play() {
        super.play();
    }
    public void run(){
        System.out.println("喜欢跑步");
    }

    public static void main(String[] args) {
        Demo01 son = new Demo01();
        son.play();
        son.run();
        System.out.println(son.name);
        System.out.println(son.body);
    }
}

class Father{
    public String name = "张";
    public String body = "胖";
    
    public void play(){
        System.out.println("喜欢打球");
    }
    
}
    从上述的例子中,有一些关键字和注解比如super,this,@Override。
    super关键字:
  1. super就是父类对象的引用
  2. 当父类的成员出现子类成员同名时,可以使用super关键字来进行区分
  3. 子类的构造方法中,通过super关键字调用父类的构造方法,父类的构造方法是优先于子类的构造方法进行实例化。
package com.javabase.lx;

public class Demo02 extends F {
    {
        System.out.println("子类构造代码块");
    }
    static {
        System.out.println("子类静态代码块");
    }
    public Demo02(){
        System.out.println("子类的构造方法");
    }
    public static void main(String[] args) {
        Demo02 d2 = new Demo02();
    }
}

class F{
    {
        System.out.println("父类构造代码块");
    }
    public F(){
        System.out.println("父类的构造方法");
    }
    static {
        System.out.println("父类静态代码块");
    }
}
    执行结果:

在这里插入图片描述
所有说父类的构造方法是优先于子类的构造方法,父类的静态代码块也是优先于子类静态代码块,子类构造代码块也是优先于子类构造代码块。

    this关键字作用:
  1. 用于引用本类的成员变量
    在构造方法中
public String name;
public test(String name){
    this.name = name;
}
  1. 调用类的构造方法
 public  String name;
    public Demo03(){
        this("xxx");
    }
    public Demo03(String name){

    }
  1. 作为返回对象的值
    return this; 相当于 return 类名;
     方法重写
    方法重写是指子类可以根据需要对父类继承来的放法进行改写,是多态机制的前奏。
方法重写的注意点:
  1. 重写方法和被重写方法具有相同的方法、参数列表和返回值。
  2. 重写方法不能使用比被重写方法更严格的权限。
  3. 在子类重写的方法中继续调用父类被重写的方法可以通过调用super.函数名去获取。
     final关键字
  1. final可以用来修饰变量、方法、类
  2. final修饰的变量是一个常量。一旦赋了值就不能再修改了。(常量一般和static关键字配合使用)
  3. final修饰类代表此类不能被继承。
  4. final修饰方法代表此方法不能被重写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值