一、抽象

1、简单说明

  • 只是声明,并不去实现
  • 抽象方法:public abstract void act();,没有方法体,直接结束,抽象方法只能存在于抽象类中。
  • 抽象类:public abstract class Test{},继承抽象类的子类必须重写父类中的方法(包括抽象方法),否则子类也必须是抽象类。

2、注意事项
(1)可以用于强制要求子类中必须有哪些方法,因为必须重写抽象父类的方法。
(2)抽象类不能实例化其他类的对象。
(3)不过,抽象类中可以有正常的方法,不一定都是抽象方法。

3、测试练习

  • 在抽象类中实例化对象报错:
  • 在继承了抽象类的普通子类中实例化对象不会报错:
abstract class Test06_Father{  //定义一个抽象类 //final常量final int height = 180;//在抽象类中定义抽象方法(抽象方法只能存在于抽象类中)public abstract void act0();//在抽象类中定义普通方法public void act1(){}public void act2(){}//在抽象类中实例化对象:会报错// Test06_Father tf = new Test06_Father();
}public class Test06_Son extends Test06_Father{  //子类继承一个抽象类//在继承了抽象类的子类中必须重写的父类方法public void act0(){System.out.println("第零次重写抽象方法……");}public void act1(){System.out.println("第一次重写普通方法……");}public void act2(){System.out.println("第二次重写普通方法……");}//在继承了抽象类的子类中定义正常执行的方法public void speeking(){System.out.println("我是不会变心的!!!");}//在子类中定义主方法public static void main(String[] args){//重新定义变量可以int height = 99;  //在继承了抽象类的普通子类中实例化对象:不会报错Test06_Son ts = new Test06_Son();  ts.act0();ts.act1();ts.act2();ts.speeking();  //调用对象中的方法}
}

二、接口

1、简单说明

  • 接口实际上是一种特殊的抽象类,里面所有内容都是公开的。
  • 接口中所有的方法都是抽象方法(不可以有普通的方法),就相当于用抽象方法占个位。
  • 使用interface来声明一个接口,在接口中定义抽象方法时可以不使用abstract。

2、注意事项
(1)接口中定义的属性必须是public static final的,而接口中定义的方法则
必须是public abstract的,因此这些修饰符可以部分或全部省略;

(2)接口中定义的属性的值在实现类中不能被更改;

(3)一个类只能实现某个接口,不能继承某个接口;但接口可以继承接口
接口不但可以继承接口,而且可以继承多个接口,即接口允许多继承;

(4)如果一个类只重写(实现)了一个接口的部分方法,则该类必须的声明为抽象类,否则就必须重写(实现)继承的接口中所有的抽象方法;

(5)一个类可以在继承一个父类的同时实现一个或多个接口,但extends关键字必须的在implements(实现)之前;

(6)不可以new接口对象,但可以定义–个接口引用类型的变量并将其指向
实现接口的对象,达到多态的目的。

3、测试练习

interface Test06_Valuable{  //定义一个接口(特殊类)//在接口中定义抽象方法:不需要使用abstractvoid getMoney();
}
class Test06_Gold implements Test06_Valuable{  //继承(实现)了接口的一个接口//在继承了接口的接口中必须重写(实现)父类的抽象方法(加个public提高访问权限)public void getMoney(){System.out.println("是金子总是值钱的!");}
}
public class Test06_Son{  //定义主方法的类public static void main(String[] args){Test06_Gold go = new Test06_Gold();  //实例化子接口对象go.getMoney();  //调用子接口对象中的方法//接口同样具有多态性Test06_Valuable tv = new Test06_Gold();  //向上赋值tv.getMoney(); }
}

Java面向对象之抽象方法抽象类、接口的使用相关推荐

  1. Java面向对象编程篇3——接口与抽象类

    Java面向对象编程篇3--接口与抽象类 1.接口(interface) 接口中可以含有变量和方法.但是要注意,接口中的变量会被隐式地指定为public static final变量(并且只能是pub ...

  2. JAVA面向对象OOP多态→抽象类abstract、接口interface实现implement、final不变修饰符、样例代码

    抽象类 抽象类-接口关系示意图 如果一个类实现接口,就要把接口中所有的抽象方法都重写. A接口继承另一个B接口时,类要重写AB两个接口的方法 如果只是实现部分接口,可以用抽象类实现. 抽象类与接口不同 ...

  3. 面向对象(final/抽象类/接口/内部类)

    >final 关键字 1.final修饰类,这个类不能被被继承; 2.final修饰变量,这个变量的值不能发生改变,就是常量; 注意: final修饰的变量,必须要初始化赋值,否则报错; 赋值的 ...

  4. Java编程基础10——面向对象_多态抽象类接口

    1.多态的概述及其成员访问特点代码体现 A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提- 1.要有继承关系 2.要有方法重写 3.要有父类引用指向子类对象. C:多态中的成员 ...

  5. (十)Core Java 面向对象(封装,继承,多态,接口) -02 (96)

     目录 :        24 ). 面向对象(聚集关系) 25 ). 面向对象(子父类中变量的特点) 26 ). 面向对象(子父类中函数的特点-覆盖) 27 ).  面向对象(子父类中构造函数的特点 ...

  6. Java面向对象(六)接口

    抽象类中的抽象方法相当于模板 , 相比于抽象类 ,接口的模板作用更存粹   ,规范性更强 . 接口interface声明,在JDK1.7之前 ,  接口中只能有抽象方法(默认修饰符 : public ...

  7. 韩顺平循序渐进学java 第13讲 抽象类.接口

    13.1抽象类 13.1.1 概念 当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,称为抽象方法,用abstract来修饰该类,称为抽象类. 13.1.2 抽象类-深入讨论 抽象 ...

  8. Java面向对象(20)--接口

    接口的使用 ①接口使用interface来定义 ②Java中,接口和类是并列的两个结构 ③定义接口中的成员 JDK7及以前:只能定义全局常量和抽象方法 全局常量: public static fina ...

  9. 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)

    JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...

最新文章

  1. python使用matplotlib可视化、自定义移除Y轴指定轴刻度标签(removing specific axis ticks in matplotlib y axis)
  2. Windows 7 VHD 启动
  3. python代做在哪找靠谱_比较靠谱的资产评估师考试去哪找
  4. js监听只读文本框_js 动态控制 input 框 的只读属性
  5. oracle捕捉所有异常,如何捕获和处理特定的Oracle异常?
  6. Android开发环境配置介绍
  7. java集合的扩容研究
  8. Linux学习笔记014---文件及文件夹权限设置_以及文件、文件夹的删除_移动_复制操作
  9. [转][Err] 1452 - Cannot add or update a child row: a foreign key constraint fail
  10. [VS]网页连接数据库
  11. QScrollArea 动态添加控件问题
  12. [转]数码单反和普通数码相机的差别
  13. ACM大量习题题库及建议培养计划
  14. ios系统软件迁移到安卓_教你把ios系统移植到安卓手机
  15. msg文件转成html文件,如何将MSG格式的文件转换为PDF格式文件?
  16. python 中dtype 为object_DataFrame中的字符串,但dtype是对象
  17. 免费可商用的图片资源推荐
  18. 内推网创始人黄小亮:拒绝猎头的P2P招聘
  19. 基础篇章:React Native之 Image 的讲解
  20. shell 系统变量IFS

热门文章

  1. matplotlib 柱状图 分组_Python数据分析与可视化之matplotlib可视化(三)
  2. 文言文生成器_英语不好,学编程太困难?或许用文言文来编程你就更加容易上手了!...
  3. 蓝牙 sig base uuid_西圣XISEM真无线蓝牙耳机ASN体验:轻盈舒适,声音悦耳_
  4. Ant Design Pro在使用TreeSelect树选择组件时,报错未注册
  5. java点击按钮在控制台输出_java 怎么获取控制台的数据并且输出到GUI上
  6. shell信息查看脚本linux,每次登录Shell时使用shell脚本查看Linux上的系统信息
  7. 登录不了_12123APP登录不了肿么办?快来看这里!
  8. java拼装树_java 数据拼装成树结构
  9. mcldownload文件夹_《我的世界》中国版游戏空间精简教程 多余文件删除方法
  10. URL请求到Action的映射规则