一、今日学习内容:

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

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)一个类一次可以实现若干个接口,但一个类只能继承一个父类。

二、遇到的问题:

今天没有遇到什么问题;

三、明日学习计划:

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

posted on 2020-10-26 22:41  白日梦想家~  阅读(67)  评论(0编辑  收藏  举报