Java 对象的继承,抽象类,接口
子父级继承
关键字 extends
首先创建一个父类
class Fu
{
String name;
int a=1;
public void word()
{
System.out.println("工作");
}
}
由一个子类继承
class Zi extends Fu
{
int a=2;
public void name()
{
System.out.println(name);
}
}
此时创建一个类,来调用
class Test()
{
Zi z=new Zi();
z.name="小张";
z.word();
z.name();
}
由此得出总结:
1)继承的出现提高了代码的复用性,提高软件开发效率
2)继承的出现让类与类之间产生了关系,提供了多态的前提
3)成员变量的变化:
当出现相同名字的成员变量时,就近原则。如上面出现的int a;
此时如果输出a那么,a=2;
此时如果想要输出Fu的a,那么使用关键字
super.a;
4)上面代码中,Fu有name,而Zi没有name,Zi会继承Fu的name属性,所以此时使用对 象z.name来修改name值是的修改Zi的name。
5)成员方法的特点
同样方法也会被继承
但当方法的返回值类型,方法名,参数相同时,方法会被覆盖
在子类中,访问父类中的成员方法格式:
super.父类中的成员方法();
抽象类的描述
当两个或者多个累的方法相同时,那么向上抽取,只抽取方法声明,不抽取就是想方法就是抽象类
抽象类的关键字 abstract
类和抽象法都需要使用abstract修饰
格式:
类: abstract class A{}
抽象方法:public abstract A();
抽象类的特点:
1)抽象类中油抽象方法,抽象方法必须写在抽象类中
2)抽象类不能直接创建对象
3)抽象类可以被继承,然后进行方法的重写,重写方法以后就可以进行对象的创建。
接口的表述
接口就是功能的集合,将方法的描述和具体的实现方法分开,优化了程序
接口的关键字interface
接口类的创建: public interface 类名
接口的特点:
1)接口中也可以有抽象方法,也需要使用abstract修饰
2)接口同抽象类一样,不能创建对象,因为方法是抽象的,创建的对象毫无意义
3)接口的抽象方法可以被继承之后重写
4)接口中的变量都是常量不可以修改的,固定修饰符 public static final
抽象类和接口类的相同点和不同点:
相同点
1)都属于被继承或者最顶级的父类
2)都不可以直接创建对象
3)都包含有抽象方法,都可以在被继承之后重写这些方法
不同点
1)抽象类一次只能继承一个,接口可以被类多个实现
2)抽象类可以包含抽象方法和具体方法,而接口类只能有抽象方法
Java 对象的继承,抽象类,接口的更多相关文章
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- 基础学习day07---面向对象三---继承,接口与 抽象类
一.继承 1.1.继承概念 将对象的共性抽取出来.提取出一个单独的类. 继承使用复用以前的代码非常容易,能够大大的缩短开发周期,降低开发成本,同时增加程序的易维护性 继承使重一个类A能够直接使用另外一 ...
- Java中的继承抽象类和接口
一.总结 1.使用extends关键字继承,eg: class Student extends Persion { ...}; 2.Java编程规范中类的首字母大写,方法的首字母小写单词首字母代谢,e ...
- Java学习笔记——继承、接口、多态
浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...
- Java自定义排序:继承Comparable接口,重写compareTo方法(排序规则)
代码: 1 import java.util.*; 2 3 /** 4 * 学习自定义排序:继承Comparable接口,重写compareTo方法(排序规则). 5 * TreeMap容器的Key是 ...
- java 类的继承和接口的继承
父类 public class person { String name; int age; void eat(){ System.out.println("吃饭"); } voi ...
- Java中的继承和接口
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 这是个老话题,继承和接口是实现多态的两种方式,如果对象很多,其中一对一对的有共同点,建议用继承,如果 ...
- Java入门教程十(抽象类接口内部类匿名类)
抽象类(abstract) 一个类只定义了一个为所有子类共享的一般形式,至于细节则交给每一个子类去实现,这种类没有任何具体的实例,只具有一些抽象的概念,那么这样的类称为抽象类. 在面向对象领域,抽象类 ...
- java之子类继承抽象类,子类构造器调用抽象类构造器问题
package com.wtd; public abstract class Car { private String name= "car"; public Car(String ...
随机推荐
- Condition的await()和signal()流程
介绍 Condition是j.u.c包下提供的一个接口. 可以翻译成 条件对象,其作用是线程先等待,当外部满足某一条件时,在通过条件对象唤醒等待的线程.ArrayBlockingQueue就是通过Co ...
- Effective C++学习记录
Effective C++算是看完了,但是并没有完全理解,也做不到记住所有,在此记录下55个条款及条款末的"请记住". 让自己习惯C++ 条款01:视C++为一个语言联邦 ① C ...
- C++11的mutex和lock_guard,muduo的MutexLock 与MutexLockGuard
互斥锁是用来保护一段临界区的,它可以保证某段时间内只有一个线程在执行一段代码或者访问某个资源. C++11的mutex和lock_guard C++11新增了mutex,使用方法和linux底下的常用 ...
- Regex 正则表达式入门
0,什么是正则表达式 正则表达式(Regular Expression简写为Regex),又称为规则表达式,它是一种强大的文本匹配模式,其用于在字符串中查找匹配符合特定规则的子串. 正则表达式是独立于 ...
- commons-logging slf4j log4j 区别
日志门面 1.Apache通用日志接口(commons-logging.jar) Apache Commons包中的一个,包含了日志功能,必须使用的jar包.这个包本身包含了一个Simple Logg ...
- SpringBoot + MybatisPlus3.x 代码生成
主要参考另外两篇博文,这里表示感谢 参考一(mybatisplus3.x分页) : https://www.jianshu.com/p/2ec9337dc2b0 参考二(mybatisplus2.x升 ...
- OSG程序设计之Hello World 3.0
直接上代码: #include <osgDB/ReadFile> #include <osgViewer/Viewer> #include <osgViewer/View ...
- C# 基础知识系列- 17 实战篇 编写一个小工具(1)
0. 前言 这是对C# 基础系列的一个总结,现在我们利用之前学到的知识做一个小小的工具来给我们使用. 如果有看过IO篇的小伙伴,应该有印象.当时我提过一个场景描述,我们在平时使用系统的时候,经常会为了 ...
- SSM + MYSQL 酒店客房管理系统
酒店客房管理系统的设计与实现是采用JSP技术,MYSQL数据库进行开发的.系统具有灵活的一体化设计方式,圆满完成了整个系统的全面设计,系统主要采用JSP技术开发,提高系统的运行性能和安全性,并且易于维 ...
- 【matlab 基础篇 01】快速开始第一个程序(详细图文+文末资源)
快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 文章目录 1 软件安装 2 打开软件 3 编写程序 3.1 基础步骤 3.2 添加PATH 3.3 命令行模式 4 ...