Java 多态

多态

1.引用的多态

父类的引用指向本类的对象

Animal obj1=new Animal();

父类的引用指向子类 的对象

Animal obj2=new Dog();

2.方法多态

本类方法:创建本类对象时调用的方法

子类重写:创建子类对象时调用的方法

引用类型转换

1.向上类型

由小到大 (无风险)

Dog dog=new Dog();
Animal animal=dog;

2.向下类型

由大转小 (溢出)

Dog   dog=new Dog();
Dog dog1=animal; // 报错

3.利用instanceof 运算符解决风险问题

抽象类:

限制规定子类必须实现某些方法

Telphone 父类(抽象类)

public abstract class Telphone {
  public abstract void call();
  public abstract void sendmessage();
}

cellphone 类继承父类

package demo3.com;

public class cellphone extends Telphone {
  @Override
  public void call() {
      System.out.println("语音");
  }

  @Override
  public void sendmessage() {
      System.out.println("语音");
  }
}

smallphone 继承父类

package demo3.com;

public class smallphone extends Telphone {
  @Override
  public void call() {
      System.out.println("打电话");
  }

  @Override
  public void sendmessage() {
      System.out.println("发信息");
  }
}

测试类

package demo3.com;

  public static void main(String[] args) {
      //抽象类的父类引用指向子类cellphone,调用方法
      Telphone tell =new cellphone();  
      tell.call();
      tell.sendmessage();
      //抽象类的父类引用指向子类smallphone,调用方法
      Telphone tell1=new smallphone();
      tell1.sendmessage();
      tell1.call();
  }
}

idea 在新建一个class的时候可以选择继承的父类

1.把光标放在父类名称上按alt+enter可以生成子类

2. 选中implement abstract class

接口

概念:

接口可以理解为一种特殊的类,由全局常量和公共的抽象方法组成

语法:

[修饰符] interface 接口名 [extends 父接口] {

}

 

原文地址:https://www.cnblogs.com/guangzhou11/p/9758916.html