多态&接口

多态

多态定义:允许一个父类变量引用子类的对象;允许一个接口类型引用实现类对象。

多态的调用:使用父类的变量指向子类的对象;所调用的属性和方法只限定父类中定义的属性和方法,不能调用子类中特有的属性和方法,

多态主要应用为多态参数和多态对象

package JobTest;

abstract class Job {
    public abstract void work();// 为了方便进行多态调用
}

class Teacther extends Job {
    @Override
    public void work() {
        System.out.println("上课");
    }
}

class Cookies extends Job {
    @Override
    public void work() {
        System.out.println("做饭");
    }
}

class Driver extends Job {
    @Override
    public void work() {
        System.out.println("开车");
    }
}

package JobTest;

public class JobTest {

    public static void main(String[] args) {
        Job a=new Teacther();//父类类型变量a指向子类对象teacther
        Job b=new Cookies();//父类类型变量b指向子类对象Cookies
        Job    c=new Driver();//父类类型变量c指向子类对象Driver
        a.work();
        b.work();
        c.work();
    }

}

以上实例是简单使用多态实例,父类Job分别使用变量指向子类对象Teacher/Cookies/Driver;

如果一个类继承抽象类,那么必须重写抽象类中所有抽象方法(@Override)

接口

接口可以看做抽象类的特例

接口中只能定义抽象方法,接口可以看做行为的抽象。

接口中的方法只能是public

接口中变量为public static final

public interface Iwash {
public abstract void wash();
}

class Mun implements Iwash{

    @Override
    public void wash() {
        System.out.println("手洗");

    }

}

class Washer implements Iwash {

    @Override
    public void wash() {
        System.out.println("电机搅动");

    }

}
public class TestWash {

    public static void main(String[] args) {
        Iwash w = new Mun();
        w.wash();

    }

}

实例中建立一个Iwash接口,Mum和Wash都有wash这个行为,所以都有Iwash接口

接口用于在不同的类实例当中,共享通用行为,重用方法。

接口和多态的概念不是很难,但是在于灵活运用。

时间: 2024-10-23 22:22:01

多态&接口的相关文章

php面向对象 封装继承多态 接口、重载、抽象类、最终类总结

1.面向对象 封装继承多态  接口.重载.抽象类.最终类 面向对象 封装继承多态  首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念2.什么是对象?从类中拿到的具有具体属性值得个体,称为对象,对象是一个具体的个体 所以,面向对象即我们专注对象来处理问题,通过从一个个具有属性和功能的类中拿到对象来处理问题. 下面我们再来细说下面向对象的三大特征:继承/封装/多态 一.继承 在PHP中我们主要通关E

继承多态接口

1. 继承的作用?好处?坏处? 继承:通过继承实现代码复用.Java中所有的类都是通过直接或间接地继程java.lang.Object类得到的.继承而得到的类称为子类,被继承的类称为父类.子类不能继承父类中访问权限为private的成员变量和方法.子类可以重写父类的方法,及命名与父类同名的成员变量.但Java不支持多重继承,即一个类从多个超类派生的能力. 优点:a因为大部分是继承而来的,实现代码重用,减少代码书写量: b很容易修改和扩展已有的实现 缺点:a打破了封装,因为基类向子类暴露了实现细节

封装,继承,多态,接口

封装 封装的概述和好处: 是面向对象三大特征之一 是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改. 封装原则: 将不需要对外提供的内容都隐藏起来. 把属性隐藏,提供公共方法对其访问. 成员变量private,提供对应的getXxx()/setXxx()方法 好处: 通过方法来控制成员变量的操作,提高了代码的安全性 把代码用方法进行封装,提高了代码的复用性 public class Student { String name; //int age

Chapter 8. 面向对象(多态--接口)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 接口 { class Program { static void Main(string[] args) { //接口:就是一个规范.能力 PlayingBasketball p = new NBAPlayer(); //PlayingBasketball p = new Student(); p.Bask

JAVA OO重点内容之 多态 接口

JAVA OO中 继承 封装 多态 抽象被命为面向对象编程的四大基础特征 封装隐藏了类的内部实现机制 从而可以在不影响使用者的前提条件下 改变类的内部结构 ,同时保护了数据 继承是为了重用父类代码 多态是指一个对象有多种形式的能力 一个类的子类可以定义他们唯一的行为 ,同时共享父类的某些相同特征. 具体来说多态可以理解为: 1.第一种是对象的不同方法可以用相同的方法名,也就是重载的概念 .(重载是指:在一个类里面 方法名相同 参数列表不同) 2.同一对象根据不同的消息执行相应的行为 ,也可以认为

多态 接口

1 package PC; 2 3 public class computer { 4 5 private String pinpai; 6 7 private ICPU cpu; 8 9 private Idisplaycard displaycard; 10 11 public String getPinpai() { 12 return pinpai; 13 } 14 15 public void setPinpai(String pinpai) { 16 this.pinpai = pi

面向对象第6课——多态——接口最简单的例题

package liti111; public interface Icpu { public abstract void run(); } package liti111; public class intel implements Icpu { @Override public void run() { System.out.println("我是intel"); } } package liti111; public class test { public static void

类、多态、抽象、接口小结

什么是类 类是具有相同的属性和方法的一堆对象的集合. 什么是对象 万物皆对象,日常生活中能看到和摸到的东西都是对象. 对象由属性和行为组成 属性是对象所具有的特征,行为是对象可以做的动作 类和对象的关系 类是对象的描述,对象是类的实例 对象的每个属性被表示为类中的一个成员变量 对象的每个行为成为类中的一个方法 什么是构造函数 构造函数是类中的一个特殊方法,该方法在对象实例化时被调用.构造函数的用途是当对象实例化时,初始化对象中的成员变量. final关键字 1.final 可修饰变量(创建符号常

面向对象(接口 ,多态)

接口 (1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口 ,接口是功能的集合 接口不能创建对象 (2)格式 父接口:public interface Tnter{ } 子类:public class interImp implements Itner{ } 接口的使用 1.接口不能创建对象 2.定义实现类来实现接口 实现的关键字 implements 3.重写抽象方法 4.创建实现类对象 调用方法 接口的特点 1.不需要被abstract 修饰 2.类实现接口,可以单实