Java 多态和抽象类,接口

  多态:对象的多种形态(继承是多态实现的基础)

           ⑴引用多态:父类的引用可以指向本类的对象;父类的引用可以指向子类的对象;

           ⑵方法多态:创建本类对象时,调用的方法为本类方法;创建子类对象时,调用的方法为子类重写的方法或者继承的方法;

           ⑶父类的引用不能调用子类独有的方法。

  多态的两个最关键的好处是:多态参数和异构集合;

  关键字 instanceof用于判断一个对象是否是一个特定类的实例。

  抽象类:

  抽象是编写抽象类的能力,抽象类是一个无法实例化的类,关键字 abstract 用于将一个类声明为抽象类。

  1. 语法定义:抽象类前使用abstract关键字修饰;
  2. 应用场景:①在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法;②从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性;
  3. 作用:限制规定子类必须实现某些方法,但不关注实现细节;
  4. 使用规则:①abstract定义抽象类;②定义的抽象方法,只有声明,不需要实现;③包含抽象方法的类是抽象类;④抽象类中可以包含普通的方法,也可以没有抽象方法;⑤抽象类不能直接创建,可以定义引用变量指向子类对象。
时间: 2024-11-12 23:47:10

Java 多态和抽象类,接口的相关文章

JAVA笔记6__抽象类/接口/多态/instanceof关键字、父类设计法则

/** * 抽象类:很多具有相同特征和行为的类可以抽象为一个抽象类 * 1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类 * 2.非抽象类继承抽象类必须实现抽象方法[可以是空实现] * 3.抽象类可以有方法和属性 * 4.抽象类不能被实例化 * 5.抽象类不能声明为final * 6.抽象类可以有构造方法[不代表实例化对象] */ public class Main { public static void main(String[] args) { Goddess m1 = new Go

多态:抽象类/接口

抽象类 什么是抽象类:不是实际存在的,抽象的 抽象类只能被继承,无法实例化 抽象方法只存在抽象类中 抽象类中不一定只有抽象方法,也有普通存在方法[如何调用其中的普通方法:子类继承,后实例化] 关键字:abstract 实际应用: public abstract

JAVA基础笔记(很实用)继承-多态-抽象类-接口-异常-集合-IO-线程-Socket

第七章:Java继承 一.继承的概念 1.一个父类派生出一个子类的机制称为继承. 2.承是重用程序代码的有力手段,当多个类之间存在相同的属性和方法时,可以从这些类中抽象出父类. 3.们只需要在父类中定义这些属性和方法,而子类无须重新定义这些属性和方法,直接从父类继承即可. 4.通过继承,子类就会自动的拥有在父类中定义的属性和方法. 5.两个或多个类的成员中存在一部分相同的情况,通过继承机制,可以利用现有的类来创建新的类. 6.子类不但拥有父类的成员,还可以定义新的成员. 7.可以提高软件的可重用

JAVA 重写&重载/多态/抽象类/封装/接口/包

重写&重载 重写(override)是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重载(overloading) 是在一个类里面,方法名字相同,而参数不同.返回类型可以相同也可以不同. 多态 多态就是同一个接口,使用不同的实例而执行不同操作 现实中,比如我们按下 F1 键这个动作: 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档: 如果当前在 Word 下弹出的就是 Word 帮助: 在 Windows 下弹出的就是 Win

JAVA中的抽象类和接口

一 抽象类 抽象类就是不能被实例化的类,即不可以用new运算符创建本类的对象.在实际应用中,抽象类应该具有子类,且其子类一般不为抽象类. java中使用抽象类的原因有如下四点: 1.抽象类是较高层次的概括,其他的类可以继承它的抽象化特征: 2.抽象类包括它的所有子类共享的公共行为和公共属性,即抽象类中定义一些属性和方法,其他类继承该抽象类并实现这些属性和方法: 3.抽象类使编写程序更贴近人类的思维方式和客观世界: 4.在用户生成实例时强迫用户生成更具体的实例,保证代码的安全性. 二 接口 在接口

多态、抽象类、接口_DAY09

1:多态(掌握) (1)多态概念:一种事物的多种形态 (2)体现:父类的引用指向其子类的实例对象;接口的引用指向其实现类的实例对象 (3)特点: 成员方法:编译看左边,运行看右边 运行:子类重写的方法运行 编译:父类的引用类型必须有该方法 成员变量:编译看左边,运行看左边 运行:访问的为父类的属性 编译:父类的引用类型必须有该属性 总结:只有在方法调用的时候,才会判断子类是否重写,重写调用子类方法.其他情况均看父类类型 记忆方法:方法运行看右边,其他看左边 例子: /* 多态: 一种事物的多种形

JAVA 虚函数 抽象函数 抽象类 接口

1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为.如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数 PS: 其实C++和Java在虚函数的观点大同小异,异曲同工罢了. 2. Java抽象函数(纯虚函数) 抽象函数或者说是纯虚函数的存在是为了定义接口. C++中纯虚函数形式为:virtual void print(

19 抽象类 接口类 封装. 多态

主要内容: 1.  抽象类(接口类): 制定一个规范  : from abc import ABCMeta,abstractmethod class Payment(metaclass=ABCMeta): @abstractmethod def pay(self):pass class Alipay(Payment): def __init__(self,money): self.money = money def pay(self): print('使用支付宝支付了%s' % self.mon

2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别

java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别 一.抽象 abstract作用:不能产生对象,充当父类,强制子类正确实现重写方法和类相比仅有的改变是不能产生对象,其他的都有,包括构造.属性等等任何一个类只要有一个抽象的方法就成了抽象类 抽象方法 public abstract A();①方法是抽象的,这个类也是抽象的:②子类必须重写抽象方法,除非子类也是抽象类 抽象类可以没有抽象方法,但一般不这么设计 二.接口 interface 接口也是Java的一种引用数据类型(J