java基础-抽象类+接口

抽象类:用abstract修饰的类

(public abstract class AbstractClass)

如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

抽象类可以包含抽象方法和非抽象方法。

如何使用抽象类:抽象类一般作为其他父类存在;子类需要重写抽象类的所有的抽象方法

public abstract class Pet {
    public abstract void sellMeng();
}
class Test{
    public static void main(String[] args) {
        Pet pet =new Cat1();
        Master master = new Master();
        //feed方法对象的形参是Pet抽象类的引用,在调用方法时需要传递子类对象
        master.feed(pet);
        //也可以传匿名内部类对象
        master.feed(new Pet() {
            @Override
            public void sellMeng() {
                System.out.println("小猪哼🐖");
            }
        });
    }
}

使用抽象类的注意事项

1)抽象类不能实例化对象
2) 抽象类的子类可实例化对象
3)抽象类的引用需要赋值子类对象
4)抽象类的多态

接口:

  使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)

接口的应用:封装功能、定义一组操作规范(开发项目,在相似的模块中有一些操作是相同的,可以吧一些相似的操作封装在一个接口中,相当于通过接口定义了一个操作规范)

面向接口编程:

1)接口使用比较灵活,一个类在继承父类的同时可以实现多个接口
2)接口可扩展:接口引用可以赋值各种实现类对象,经常把接口引用作为形参,在调用方法时可以传递各种实现类对象
3)接口可以使项目分层

接口代码例子:

//定义接口:Flyable
public interface Flyable {
    //接口方法默认使用 public abstract,且不能修改为private
     void fly();
//     void swim();
}
//Fish实现 接口Flyable
public class Fish implements Swimable{
//方法重写
    public void swim() {
        System.out.println("小鱼游泳");
    }
//类定义的新方法
    public void xiaoMingTest(){
        System.out.println("小明会游泳");
    }
}
posted @ 2021-08-10 00:19  只要不兔的学习笔记  阅读(68)  评论(0)    收藏  举报