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("小明会游泳");
}
}

浙公网安备 33010602011771号