Java学习日记 2022.05.11

学习目标:

抽象类和接口


学习内容:

抽象类

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。在 Java 中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

抽象类用abstract关键字修饰,如果一个类包含抽象方法,那么该类必须是抽象类。任何子类必须重写父类的抽象方法,或者声明自身为抽象类。

public abstract class Animal {
    abstract void eat();
    abstract void move();

}

抽象方法
 使用 abstract 修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。
抽象类
 包含抽象方法的类就是抽象类,反之不一定成立。通过 abstract 方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。
     1.有抽象方法的类只能定义成抽象类
 2.抽象类不能被实例化,不能用new来实例化抽象类
 3.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来 new 实例, 只能用来被子类调用。
 4.抽象类只能用来被继承。
 5.抽象方法必须被子类实现。

public abstract class Handset {
    String brand;
    String type;
    public Handset(){
    }
    public Handset(String brand, String type) {
        this.brand = brand;
        this.type = type;
    }

    public abstract void sendInfo();
    public abstract void call();
    public abstract void info();
}

接口

接口技术,这种技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现.一个类可以实现一个或多个接口,并在需要接口的地方随时使用实现了相应接口的对象.
在Java程序设计语言中,接口不是类,而是一组对类的需求描述.接口中所有方法都自动地属于public.因此在接口中声明方法是,不必提供关键字public.

public interface IPet {
    void play();

    String getName();
}
public interface PlayWiring {
    String comiemt=" ";
    void play(String comiemt);
}

为什么需要接口?接口和抽象类的区别
 接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全 面地专业地实现了:规范和具体实现的分离。
 抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了一批类具有的公共方法规范。
 从接口的实现者角度看,接口定义了可以向外部提供的服务。
 从接口的调用者角度看,接口定义了实现者能提供那些服务。
子类通过 implements 来实现接口中的规范。
 接口不能创建实例,但是可用于声明变量类型
 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是 public 的。

接口完全支持多继承。和类的继承类似,子接口扩展某个父接口,将会获得父接口中所定义的一切

接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值