• 2020.10.26


    一、今日学习内容:

    上周的继承与多态的知识还有一部分需要了解学习的一些地方:

    1、抽象类和抽象方法

    有abstract修饰的类称为“抽象类”,它只定义了什么方法应该存在,不能创建对象,必须派生出一个子类,并在子类中实现其未实现的方法之后,才能使用new关键字创建对象。

    在方法前加上abstract就形成抽象方法,只有方法声明,没有实现代码

    abstract class Person
    {
        public abstract String getDescription();
    }

    一个抽象类中可以包含非抽象方法和成员变量。包含抽象方法的类一定是抽象类,但抽象类中的方法不一定是抽象方法

    2、抽象类的三种类型:

    (1)直接定义了一个抽象方法

    (2)继承了一个抽象父类,但没有完全实现父类包含的抽象方法

    (3)实现了一个接口,但没有完全实现此接口所包容的抽象方法。

    3、从抽象类继承:

    从抽象类继承的子类必须实现父类的所有抽象方法,否则,它仍然是抽象类

    class Employee extends Person {
    public  String getDescription() {
        //Do Something...
        return "";
    }
    }

    抽象类不能创建对象,一般用它来引用子类对象。

    实例: 

    Person p; 
    p=new Employee();

    以下模式总是成立的: 抽象类 抽象类变量 = new 派生自抽象类的具体子类();

    4、Java中接口的语法特性

    (1)定义一个接口,采用关键字interface,实现一个接口,采用关键字implements

    (2)接口的成员函数自动成为public的,数据成员自动成为 static和final的。

    (3)如果接口不声明为public的,则自动变为package。

    (4)一个类可以同时实现多个接口。

    5、接口的使用:

          IFood f = new Duck();

          接口类型 接口类型的变量=new 实现了接口的具体类型();

    6、接口:

    可以通过继承接口来扩充已有接口,并形成一个新的接口。

     interface OneInterface {
    void f1();
    }
    interface TwoInterface extends OneInterface {
    void f2();
    }

    实现子接口的类,必须实现“父”“子”接口所定义的所有方法,才能被实例化(即new出一个对象)。

    7、利用接口定义常量:

    public interface ArrayBound {
        public static final int LOWBOUND=1;
        public static final int UPBOUND=100;
    }

    只要一个类声明实现了这个接口,就可以直接使用这些常量名

    在实际开发中,这种编程方式非常常见。

    注意:定义在接口中的常量必须被初始化。

    8、接口与抽象类的区别

    (1)抽象类是一个不完全的类,而接口只是表明类应该具有哪些“外部”特征,不涉及任何实现细节。

    (2)接口基本上不具备继承的任何具体特点,它仅仅承诺了外界能够调用的方法。

    (3)一个类一次可以实现若干个接口,但一个类只能继承一个父类。

    二、遇到的问题:

    今天没有遇到什么问题;

    三、明日学习计划:

    明天学习异常处理的部分操作。

  • 相关阅读:
    docker入门
    初级排序算法1-定义排序规则
    Lambda入门
    mac编辑器vim美化
    SSM搭建
    Memcached安装教程及使用
    lombok
    立个Flag-第一天
    等高线自适应分割
    wpf软件模拟鼠标键盘操作
  • 原文地址:https://www.cnblogs.com/marr/p/14175181.html
Copyright © 2020-2023  润新知