java学习笔记(2)多态与接口

1.什么是is-a关系?什么是has-a关系?
他就是一种继承关系举例 比如 一个猫是一个动物,一个狗是一个动物;一个动物可以有很多种;就好比 一个爸爸可以有很多儿子,但是一个儿子不可以有两个爸爸。 这种关系就是is-a.
has-a( 有 “a” 汽车有轮胎) 表示组合,包含关系。比如兔子包含有腿,头等组件;就不能说兔子腿是属于一种兔子(不能说是继承关系)
2.什么是多态?
同一个引用类型,引用不同的对象调用方法时可以执行不同的操作。简单来说就是一个姿态可以有多种动作就称之为多态。
注意:多态的前提是要有继承。
3.向上转型
父类引用子类对象时,他们之间存在一种类型转换问题,称之为向上转型。一般在向上转型时,父类无法引用子类独有的方法,
4.向下转型
把父类强行转换为子类
dog[子类] d=(dog)p1[父类];
通过向下转型 父类就可访问到子类独有的方法了,但是强转的子类只能用这个强转子类的独立方法,其他子类的还是不可以引用。会报错。
5.抽象
关键字 abstract
在将一个类变成抽象类的时候,以及他的方法也变成抽象方法时,(抽象方法没有方法体)这时如果有其他类继承这个抽象类,必须要重写他的方法,否则会报错。
抽象类不可通过new来调用,抽象类里面的构造方法这时只可以通过super来调用。
abstract不可以和static一起使用,abstract不可使用在构造方法上
6.接口
关键字 interface
语法 public interface 接口名称{}
接口里面的方法全部都没有方法体,可以理解为都是抽象的。
接口的优势在于不同类之间定义相同的行为;这些类之间不必有继承关系。接口的更大优势在于系统的设计,也就是面向接口编程。
7.实现接口
关键字 implements
语法 public class 类名称 implements 接口1,接口2…{ }
创建好接口以后,通过implements可以来实现这些接口里面的方法
一个类可以实现多个接口,但只能继承一个父类;这就像一个儿子只有一个父亲,但是可以有多个老师一样
8.接口的特征
接口作为一种约定、规范或标准具有以下显著特征:
1.接口不可以被实例化,不能有构造方法。
2.接口中的所有成员都是public static final。
3.接口中的方法都是抽象方法,接口中的方法会自动使用public abstract来修饰。
4.一个类可以同时实现多个接口
5.实现类必须实现接口中的所有办法。
6.接口可以继承接口,例如:显卡一般是通过PCI-E的方式连接到主板上的,我们可以编写一个PCI-E的接口来继承PCI接口,再让DisCard实现PCI-E接口。
9.抽象类和接口的区别:
(1)抽象类可以有构造方法,接口中不能有构造方法。
(2)抽象类中可以有普通成员变量,接口中没有普通成员变量(接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final)
(3)抽象类中可以包含静态方法,接口中不能包含静态方法
(4) 一个类可以实现多个接口,但只能继承一个抽象类。
(5)接口可以被多重实现,抽象类只能被单一继承
(6)如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法
(7) 接口定义的关键字interface;抽象类定义的关键字abstract
(8)抽象类继承的关键字extends,接口的实现关键字implements
(9) 抽象类可以提供成员方法的实现细节,可以用public 、protected、default这些修饰符;接口只能是public abstract方法

你可能感兴趣的:(java)