Java(extends - 继承、implements - 接口、多态、方法重写\覆盖)

extends - 继承

  1. 概念:
    子类/衍生类/扩展类s
    父类/基类
  2. 子类继承父类, 就继承了父类所有的成员变量和方法不能继承构造方法,只能调用
  3. 所有的类, 都有唯一的父类
    如果没有写父类, 说明父类就是 Object
  4. 子类中还可以定义自己的独特的成员变量和方法
    子类的功能一定比父类要强大
public static class A extends Object{
   } 
public static class B extends A {
   } 
public static class C extends A {
   }
...

特殊情况

  1. 子类中的成员变量和父类同名
    自己定义的成员变量,不是继承过来的成员变量
    结论: 父子类中的成员变量不要同名
  2. 子类中可以引用父类对象
    super
    创建子类对象之前, 会先创建父类对象
    加载子类之前, 会先加载父类
  3. 构造方法
    父类的构造方法不能被子类继承的
    创建子类对象, 会先默认调用父类的无参构造器
    原因: 子类构造方法中, 第一行默认 super()
    可以手动调用父类其他构造方法
    结论: 子类构造方法中, 一定会先调用父类的构造方法
    父类中, 建议先写无参构造器,这样不容易出现编译错误
  4. 通过子类对象调用方法时
    先看子类中有没有定义这个方法, 定义了, 调用子类方法
    子类中没有这个方法, 调用父类继承的方法

接口

– JDK 1.8以前,接口中的方法默认,也必须是public的(只能用public)
– JDK 1.8时,接口中的方法默认public的,也可以是default的(可以是public和default)
– JDK 1.9时,接口中的方法可以是private的(可以是public和default和private)

特殊的抽象类(可能会存在抽象方法)
接口不是类,是一种引用类型
引用类型:数组、类、接口

public interface InterfaceDemo {
   
    //公开的静态常量
    public static final int i = 10;
    //接口不是类,是一种引用类型
    //引用类型:数组、类、接口
    void f();
    public void f1();
    abstract void f2();
    //公开的抽象方法
    public abstract void f3();
    //默认的
    default void f4() {
   

    }
    //静态的
    static void f5() {
   

    }
    //普通的私有方法 - 为了给default方法中的公共代码提取, 实现代码复用
    private void f6() {
   

    }
    //静态的私有方法 - 给static方法中公共代码提取的
    private static void f7() {
   

    }
}

使用接口的步骤

  1. 定义接口
// 1.定义接口
public interface InterfaceAbstractA {
   
    // 定义抽象方法
    void abstractMethod();
    // 再添加一个抽象方法
    void abstractMethodB();
    // 又添加了一个静态方法
    static void staticMethodC() {
   
        System.out.println("static MethodC");
    }
}
  1. 接口不能直接new对象, 需要一个实现类来 实现接口
    将接口中的所有抽象方法 覆盖重写(实现)
// 2.定义实现类, 实现接口
public class InterfaceAbstractAImpl implements InterfaceAbstractA {
   
    @Override
    public void abstractMethod() 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值