Java作为完全面向对象语言,接口、继承和多态是三个非常重要的概念。

1.继承。

(1)关键字: extends

(2)子类用super()调用父类构造函数,用super().方法 调用父类的成员方法

(3)子类中 方法重写:更改权限(如: protected 改为 public ) 或修改方法返回值类型

                重构:子类和父类成员方法的唯一不同是方法内容

(4)子类实例化时,会从父类从顶向下依次调用构造函数

2.Object类。

(1)Object是所有类的父类

(2)getClass()方法: 返回对象执行时的Class实例,然后接.getName()获取当前类的方法

(3)toString()、equals()方法,前面已经讲过啦,这里不再赘述。

3.对象类型转换。

(1)向上转型: 子类直接调用父类的方法。例如:鸡类继承自家禽类,定义的鸡实例当然是家禽,拥有家禽的属性和方法,当然可以调用拉,合法。

(2)向下转型: 需要显示类型转换。[看代码实例]

(3)intanceof: 判断一个实例对象是否属于一个类,可与向下转型结合。

4.方法重载。

(1)同一方法名,参数个数/类型不同。

(2)add(int ... a) :不定长参数a,相当于[]a 对待,  使用时:add(a,b,c,d,e);

5.多态。

相同功能的方法,在父类中定义,将不同类对象作为参数。调用时通过穿不同的参数调用不同的子类方法。

6.抽象类与接口。

抽象类即方法没有方法体的父类。接口中的所有方法也没有方法体。

例如:

public interface inter{

  void draw();

}

7.类的高级特性随记。

(1).import: 可导入静态成员  如:import static java.lang.Math.mx; //导入静态成员方法

(2).final修饰词:修饰变量、方法、类,修饰后不可更改/重写/继承。

(3)内部类:类中嵌套类,内部类的实例化需要在外部类的非静态方法中实现  如:OutClass out = new OutClass();  OutClass.innerClass in = out.new innerClass();

测试样例如下:含(接口、继承、多态)

package re05;

public class ClassTest {

    public ClassTest() {
System.out.println(this.toString() + "调用ClassTest构造函数");
} public void doSomeThing() {
System.out.println("ClassTest_doSomeThing1");
} public static void main(String[] args) {
ClassTest t = new ClassTest();
ClassTest1 t1 = new ClassTest1();
t1.draw(); // 接口方法 方法化
ClassTest1 t2 = new ClassTest1();
t = t2; // 向上转换
t.doSomeThing();
t1.doSomeThing();
if (t instanceof ClassTest1) // 判断父类对象是否属于子类
t1 = (ClassTest1) t; // 向下转换
t1.doSomeThing();
}
} class ClassTest1 extends ClassTest implements inter { // 继承
public ClassTest1() {
// super(); //调用父类构造函数
System.out.println(this.toString() + "调用ClassTest1构造函数");
} public void doSomeThing() { // 重构
System.out.println("ClassTest1_doSomeThing1");
} public void draw() {
System.out.println("draw");
}
} interface inter {
void draw();
}

java复习(5)---接口、继承、多态的更多相关文章

  1. Java复习(五)接口与多态

    5.1接口 允许创建者规定方法的基本形式:方法名.参数列表以及返回类型,但不规定方法主体. 也可以包含基本数据类型的数据成员,但他们都默认为static和final 声明格式为 [接口修饰符]inte ...

  2. No2_4.接口继承多态_Java学习笔记_经典案例

    import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; import jav ...

  3. 记录:JAVA抽象类、接口、多态

    JAVA抽象类.接口.多态 1. 多态 定义 多态是同一个行为具有多个不同表现形式或形态的能力.(多态就是同一个接口,使用不同的实例而执行不同操作) 如何实现多态 继承和接口 父类和接口类型的变量赋值 ...

  4. java面向对象(封装-继承-多态)

    框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...

  5. Java三大特性(封装,继承,多态)

    Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...

  6. Java复习3-类的继承

    前言 本次学习面向对象设计的另外一个基本概念:继承(inheritance).这是Java程序设计中的一项核心技术.另外,还要学习反射(reflection)的概念. 继承 类.超类.子类 publi ...

  7. Java 面向对象之接口、多态

    01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...

  8. Java面向对象(接口、多态)

    面向对象 今日内容介绍 u 接口 u 多态 第1章 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的 ...

  9. java基础(11):接口、多态

    1. 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成. ...

  10. Java基础笔记-抽象,继承,多态

    抽象类: abstract修饰 抽象方法必须定义在抽象类中,抽象类不能创建对象. 在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象. 特点是: 1.定义在抽象类中 2.方法和类都用abstr ...

随机推荐

  1. thinkphp apicloud 下拉刷新 。。。由于新人里面导入了vue.js

    //刷新 apiready = function(){ var count; var i= 1; var param = {}; toDoRequest(); param.loadingImgae = ...

  2. Selenium 切换句柄

    最近用了网络上别人的一段切换窗口的code每次成功了,不错,学习 // 根据Title切换新窗口 public boolean switchToWindow_Title(WebDriver drive ...

  3. js实现Mac触摸板双指事件(上、下、左、右、放大、缩小)

    前言 这几天在修复一个web问题时,需要捕获Mac触摸板双指事件(上.下.左.右.放大.缩小),但发现并没有现成的轮子,还是要自己造. 例如:jquery.mousewheel.js(添加跨浏览器的鼠 ...

  4. Struts2学习笔记⑧

    今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...

  5. Vue基本入门

    介绍 1.Vue.js是什么? Vue.js(读音:/vju:/,类似于view)是一套构建用户界面的渐进式框架,与其他重量级框架不同的是,Vue采用的是自底向上增量开发的设计. Vue的核心库只关注 ...

  6. JAVA I/O 字符输出流简要概括

    偷个懒,直接参考上篇字符输入流Reader的形式,其实Reader和Writer本来就大同小异: 字符输出流Writer 本篇将对JAVA I/O流中的字符输出流Writer做个简单的概括: 总得来说 ...

  7. SQL-with as基本用法(源码DEMO)

    DROP TABLE #temp; with cr as ( SELECT At.SysNo AS AtSysNo , ( CASE WHEN At.Source = 1 THEN At.Vendor ...

  8. idea 使用常见问题处理

    问题一: 项目中使用了 lombok,但是代码中一直报错,提示 bean 注入失败,set 和 get 方法都飘红 解决:idea 中安装 lombok 插件,安装方法自行百度吧~ 如果是用的 ecl ...

  9. 零基础入门学习UI设计指南

    第一步:认识设计启蒙必备知识 学习一项技能,尤其是已经有一定沉淀并在各行各业有广泛应用的技能,就一定要对它先有充分的认知.在开始正式学习前,你需要花足够的经历去了解和查阅它的起源.发展.应用.未来. ...

  10. Python快速入门(3)

    数据结构: 列表的元素可变,用[] or list()创建. 元祖的元素不可变,用() or tuple()创建. 集合的元素不可重复,用{} or set()创建. 字典的存放K-V,用dict() ...