java接口和多态总结
多态总结
- 多态的三种形式:父类为正常类、父类为抽象类、接口。
- 强制类型转换,才能访问子类的私有方法和属性,否则多态只能访问子父类的共同方法,子类的实现。
代码如下:
父类
package org.junit.duotai;
public class Animal {
public void eat() {
System.out.println("父类方法eat");
}
}
子类
package org.junit.duotai;
public class Cat extends Animal{
String color = "yellow";
public void eat() {
System.out.println("猫吃猫粮");
}
}
子类
package org.junit.duotai;
public class Dog extends Animal{
public void eat() {
System.out.println("狗吃狗粮");
}
public void watchHome() {
System.out.println("狗看家");
}
}
测试方法
package org.junit.duotai;
public class TestDemo {
public static void main(String[] args) {
// 自动转换
Animal a1 = new Cat();
Animal a2 = new Dog();
a1.eat();
a2.eat();
// 强制类型转换,访问子类的属性和方法
Cat b1 = (Cat)a1;
System.out.println(b1.color);
Dog b2 = (Dog)a2;
b2.watchHome();
}
}
打印输出
猫吃猫粮
狗吃狗粮
yellow
狗看家
接口:理解为是一个特殊的抽象类,但它不是类,是一个接口
接口的特点:
- 定义一个接口用interface关键字
interface Inter{}
- 一个类实现一个接口,实现implements关键字
class Demo implements Inter{}
- 接口不能直接创建对象
通过多态的方式,由子类来创建对象,接口多态
接口中的成员特点:
成员变量:
- 只能是final 修饰的常量
- 默认修饰符: public static final
构造方法:
- 无
成员方法:
- 只能是抽象方法
- 默认修饰符: public abstract
类与类,类与接口,接口与接口之间的关系
- 类与类之间:继承关系,单继承,可以是多层继承
- 类与接口之间: 实现关系,单实现,也可以多实现
- 接口与接口之间:继承关系,单继承,也可以是多继承
- Java中的类可以继承一个父类的同时,实现多个接口
多态:理解为同一种物质的多种形态
多态使用的前提:
1,有继承或者实现关系
2,要方法重写
3,父类引用指向子类对象
多态的成员访问特点:
方法的运行看右边,其他都看左边
多态的好处:
提高了程序的扩展性
多态的弊端:
不能访问子类的特有功能
多态的分类
类的多态
abstract class Fu {
public abstract void method();
}
class Zi extends Fu {
public void method(){
System.out.println(“重写父类抽象方法”);
}
}
//类的多态使用
Fu fu= new Zi();
接口的多态
interface Fu {
public abstract void method();
}
class Zi implements Fu {
public void method(){
System.out.println(“重写接口抽象方法”);
}
}
//接口的多态使用
Fu fu = new Zi();
instanceof 关键字
格式: 对象名 instanceof 类名
返回值: true, false
作用: 判断指定的对象 是否为 给定类创建的对象
我不相信黑夜将至 因为火把就在我的手中。