第六章、抽象类和接口

一、抽象类与抽象方法

//抽象类
public abstract class Pet { 
       //抽象方法
       public abstract void toHospital() ;
}
抽象类和普通类的区别:有无方法体

        抽象类不能被实例化但可以创建一个引用变量,其类型是一个抽象类,指向非抽象的子类实例

        普通类可以被实例化

抽象类和抽象方法的使用:

        抽象类可以没有抽象方法,但有抽象方法的类必须为抽象类

        子类如果没有实现父类的所有抽象方法,那子类必须被定义为抽象类

        没有抽象构造方法,也没有抽象静态方法

        抽象类中可以有非抽象的构造方法,创建子类的实例时可能调用

二、接口
public interface MyInterface {
    //所有方法默认都是:public abstract
    public void foo();
    //其他方法
}
接口的特性:

        接口不可以被实例化

        实现类必须实现接口的所有方法

        实现类可以实现多个接口:implements、多个接口使用逗号隔开

        接口中的变量都是静态常量(public static final)

接口的实现:

        1.先编写一个接口,根据需求设计相应的方法

        2.编写一个实现类,使用 implements 连接接口,再实现接口中的所有方法

//接口A
public interface InterfaceA {
    //接口A中的方法
    public void printCapitalLetter();
}

//接口B
public interface InterfaceB {
    //接口B中的方法
    public void printLowercaseLetter();
}

//类 Print 分别实现接口InterfaceA和InterfaceB
public class Print implements InterfaceA, InterfaceB{
    @Override
    public void printCapitalLetter() {
        System.out.print("大写英文字母表:");
        for (char i = 'A'; i <= 'Z'; i++){
            System.out.print(i+ " ");
        }
        System.out.println();
    }

    @Override
    public void printLowercaseLetter() {
        System.out.print("小写英文字母表:");
        for (char i = 'a'; i <= 'z'; i++){
            System.out.print(i+ " ");
        }
        System.out.println();
    }
}
注:接口是一种能力,接口是一种约束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值