nxmxx / blog

记录我的学习路程和我的进步
1 stars 0 forks source link

抽象 接口(抽象方法) #17

Open nxmxx opened 4 years ago

nxmxx commented 4 years ago

抽象

  1. 定义: 不同子类继承父类,父类定义对子类计算的方法,但子类不同。计算方法不同,则父类中抽象的创建计算方法,具体对每个子类怎么计算不知道,只是抽象的知道计算方法。 举例: 图形计算面积,但不同图形具体怎么计算不知道,这就是一个抽象方法。

  2. 抽象方法和抽象类 (1) 抽象类格式 抽象类在class前加abstract关键字 Public abstract class{

} 2) (2) 抽象方法格式 抽象方法在放回值类型前加abstract关键字,并去掉{}。

public abstract void method (); 注:抽象方法所在类必须是抽象类; 抽象类中依然可以写普通类。 (3) 抽象方法抽象类的使用 抽象类、抽象方法的使用 1.创建对象时不能直接创建抽象类的对象,必须有子类继承,创建子类对象。 2.子类必须要覆盖重写父类中所有的抽象方法,就是把抽象类具体化,才可创 建对象去使用。 覆盖重写:去掉abstract关键字和“;”,加上“{ 方法体 }”, 3.创建子类对象进行使用。

Animal: package cn.javase.video.study.Abstract; /抽象类、抽象方法的使用 1.创建对象时不能直接创建抽象类的对象,必须有子类继承,创建子类对象。

Cat: package cn.javase.video.study.Abstract;

public class Cat extends Animal { // 抽象方法的覆盖重写

@Override

public void method(){

System.out.println("maochiyu");

} }

Main: package cn.javase.video.study.Abstract;

public class Cat extends Animal { @Override public void method(){

System.out.println("maochiyu");

} } (4) 注意事项  创建对象时不能直接创建抽象类的对象,必须有子类继承,创建子类对象。  一个抽象类不一定必须有抽象方法,但一个抽象方法必须是在抽象类中的,无抽象方法的抽象类用在特殊场景。  抽象类中可以有构造方法,是供子类创建对象时初始化父类构造方法。  子类必须要覆盖重写父类中所有的抽象方法,就是把抽象类具体化,才可创建对象去使用。否则会报错。 覆盖重写:去掉abstract关键字和“;”,加上“{ 方法体 }”,

3.发红包案例

接口

  1. 接口定义: 接口就是一些公共规范标准,比如生活中的插头;

  2. 接口的定义基本格式 /*interface定义基本格式

    • 1.Interface类基本格式: *public interface MyInterFace { //.......
    • }
  3. 接口的抽象方法定义 .Interface抽象方法的定义

    • 格式:
    • public abstract 返回值类型 抽象方法名称 (参数列表);
    • 要求:
    • (1) public 和 abstract两个关键字是规定死的,但可以省略任意一个或全部省略。
    • (2) 抽象方法的三要素 返回值类型、参数列表、方法名 根据要求做
    • public interface MyInterFace {

    public abstract void interFaceAbstract(参数列表);

    }

  4. 接口的抽象方法使用 (1)Interface类 package cn.javase.video.study.InterFace;

/*interface定义基本格式

public class MyInterfaceabsimpi implements MyInterFace{

@Override
public void abs1() {
    System.out.println("1 Interface Abstrct");
}

@Override
public void abs2() {
    System.out.println("2 Interface Abstrct");
}

@Override
public void abs3() {
    System.out.println("3 Interface Abstrct");
}

@Override
public void abs4() {
    System.out.println("4 Interface Abstrct");
}

}

(3)Interface类的实现类的使用类 package cn.javase.video.study.InterFace;

public class InterFaceMain { public static void main(String[] args) { MyInterfaceabsimpi impi =new MyInterfaceabsimpi(); impi.abs1(); impi.abs2(); impi.abs3(); impi.abs4(); }

}

  1. 接口的默认方法定义
  2. 接口的默认方法使用