Java的抽象类、多态

1.抽象类:

  • 只是约定了了类的抽象行为,没有具体的实现相应的行为。

2.场合:

  • 此类不适合创建对象,使用子类的对象
  • 此类,为所有子类提供了模板

3.语法:

Abstract class 抽象类{

    类中的成员;

    抽象的方法;

}

4. 使用注意:

  • 抽象类不能创建对象;
  • 必须通过  子类继承使用;
  • 普通的子类必须 实现(重写)父类中的所有抽象方法;抽象的子类除外;
  • 构造器不能是抽象;
  • abstract 不能与 private ,static ,final一起用;
  • 抽象方法可以定义也可以不定义。

- -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - -

抽象方法:没有具体实现的方法。

- -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - - -  -- - -- - - - - - - - - - - -

  • 接口:是一组功能的封装,是一组公共的规则。
  • 语法:访问修饰符 interface 接口名{

常量;

抽象方法();

Default默认方法(){}

Static 静态方法(){}

静态内部类型;内部类,接口,枚举

}

1.注意:

  • 接口是不能创建对象的;
  • 实现类 实现接口;普通的实现类 必须实现接口中的所有抽象方法;(抽象实现类除外);
  • 实现类 可以实现多个接口中的功能;

  • 接口 可以继承接口,可以多继承;
  • 接口中的成员:都是public,抽象方法都是abstract;常量是public static final。

2.接口中 有同名的方法:

 

抽象方法:实现类统一 重写;

- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - -

速度

①都不能创建对象;

②都存在抽象方法;

③都是子类或实现类继承或实现来使用;

④普通的子类和实现类必须重写抽象类或接口中的所有抽象方法;(抽象子类或实现类除外)

  1. 普通的子类 和 实现类 必须重写 抽象类 或接口中的所有抽象方法;抽象子类或实现类除外。
  2. 不同:

①子类只能 继承一个抽象类;实现类可以 实现多个接口;

②类是单一继承;接口可以多继承。

  1. 接口:一组规则。同一应用程序,降低耦合连接。不同应用程序,连接的桥梁。
  2. 抽象类:模板。

- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - -

1.多态:

多态:

运行时多态;

 

package Day11;

class Teacher{

    String name;

    public void giveLesson() {}

}

class JavaTeacher extends Teacher{

    String tattoo;

    public void sing() {}

    public void giveLesson() {System.out.println("Java");}

}

public class TestTeacher {

    public static void main(String[] args) {

       //父类引用 -》子类对象

       JavaTeacher guofu = new JavaTeacher();

       guofu.giveLesson();

       System.out.println(guofu.name);

    }

Person zhangsan = new Person();

2.特点:子类(实现类)中的独特的功能被屏蔽了不能调用了。

3.类型转换:向上类型转换:子类 –》父类类型;     强转

 

            向下类型转换:父类 –》子类类型; 

4.instanceof 运算符:运算 某个 对象 是否是 接口类型;

                   是  --》true

                   不是—》false

- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - - -  - -- - -- - - - - - - - - - - -

 

  1. UML:建模语言。
  2. 类图:
  • 泛化:继承(extends)
  • 实现:接口 和 实现类(implements)
  • 依赖:使用的关系。

语法:被依赖的类 作为 局部变量(参数)。

  • 关联:拥有。(三种关系:一对一、一对多、多对多)

特殊的关联:

强关联:

聚集(聚合):整体 局部的关系。局部离开整体可以独立存在。

语法:成员变量。    强聚合: 

组合:整体 局部的关系。局部离开整体不能独立存在。

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/83384196
今日推荐