面向对象_06【抽象类:abstract、接口:interface、实现:implements】
抽象类:abstract
抽象:没有足够的描述功能,事物不具体的描述,却又有共性。
特点:
1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中,该类也必须被abstract修饰。
2,抽象类不能被实例化。
3,抽象类必须有其子类覆盖所有的抽象方法后,该子类才可以实例化,否则该子类还是抽象类。
抽象类细节常见问题:
1,抽象类中有构造函数吗?
有,用于给子类对象进行初始化
2,抽象类可以不定义抽象方法吗?
可以,但是少见,目的就是不让该类创建对象。通常这个有方法体,却没有内容。
abstract class Demo{
void show();
void show(){};//有方法体却没有内容
}
3,抽象关键字不可以和那些关键字共存?
非法修饰符组合,abstract和private、static、final
4,抽象类和一般类的异同点?
相同点:抽象类和一般类都是描述事物,都在内部定义成员。
不同点:1,一般类有足够的信息描述事物。
抽象类描述事物的信息有可能不足。
2,一般类中不能定义抽象方法,只能定义非抽象方法。
抽象类可以定义抽象方法,同时也可以定义非抽方法。
3,一般类可以被实例化
抽象类不可以被实例化
5,抽象类一定是个父类吗?
是,因为需要子类覆盖其方法后才可以对子类实例化。
Example:
package new_Object;
//定义一个抽象类
abstract class Person_A{
abstract void show();//抽象方法show();
}
//Student类继承Person类
class Student_A extends Person_A{
//实现抽象方法show();
void show(){
System.out.println("抽象类");
}
}
public class Abstract_class {
public static void main(String[] args) {
Student_A stu=new Student_A();
stu.show();
}
}

接口:interface{} 是一种特殊的抽象类,一个类可以实现多个接口。
当一个类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式来定义和表示,就是接口 interfce。
接口不可以实例化,只有由实现接口的子类并覆盖了接口中所有的抽象方法后,该子类才可实例化,否则这是子类就是抽象类。
接口中常见的成员:而且这些成员都有固定的修饰符
1,全局常量:public static final
2,抽象方法:public abstract
特点:接口中的成员都是公共的权限
package new_Object;
//定义school接口
interface School{
int ID=2015112401;
String name="张三";
//定义sspeak、show抽象方法
void speak();
void show();
}
class Stu implements School{
//实现speak、show方法
public void speak(){
System.out.println("实现speak方法");
}
public void show(){
System.out.println("实现show方法");
}
}
//测试类
public class Interface_implements {
public static void main(String[] args) {
Stu p=new Stu();//创建student实例对象
//调用student类方法
p.speak();
p.show();
}
}

多实现:在Java中不直接支持多继承,因为会出现调用的不确定性。所有Java将多继承机制改良,在Java改良成了多实现。
类与类之间是继承关系,类与接口之间是实现关系(implements)
Example:
interface A{
public void show();
}
interface B{
public void show();
}
class Test implements A,B//多实现
{
public void show();
}
面向对象_06【抽象类:abstract、接口:interface、实现:implements】的更多相关文章
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来 ...
- Java面向对象_抽象类、接口
一.抽象类 概 念:很多具有相同特征和行为的对象可以抽象为一个类:很多具有相同特征和行为的类可以抽象为一个抽象类 关键字:abstract 规 则:1.抽象类可以没有抽象方法,有抽象方法的类必 ...
- JavaSE基础知识(5)—面向对象(抽象类和接口)
一.抽象类 1.理解 用abstract关键字定义的类,称为抽象类用abstract关键字定义的方法,称为抽象方法意义:当设计父类时,发现该父类根本不需要创建对象,并且里面有不好描述的方法.这个时候往 ...
- Java:【面向对象:抽象类,接口】
本文内容: 抽象类 接口 抽象类与接口的异同 首发日期:2018-03-24 抽象类: 虽然已经有了父类,但有时候父类也是无法直接描述某些共有属性的,比如哺乳类和人类都会叫,而一般来说哺乳类这个父类并 ...
- java面向对象_抽象类和接口
一.抽象类 1.抽象方法:由abstract修饰.只有定义没有方法体.用一个分号结尾. 2.抽象类: 1)包含抽象方法的类必须是抽象类 2)由abstract修饰 3)不能被实例化 4)抽象类如果不被 ...
- 十、Java基础---------面向对象之抽象类与接口
抽象类(abstract) 当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的方 ...
- go面向对象之多态即接口(interface)
Go 语言接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. 实例 /* 定义接口 */ type interface ...
- 虚方法(virtual)\抽象方法(abstract)\接口(interface)的区别
转自:https://www.cnblogs.com/fantaohaoyou/p/9402657.html 虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢? 1. 虚方法必须有实现部分,抽 ...
- Java面向对象之抽象类,接口
抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法 抽象方法: 声明而未被实现的 ...
- C#面向对象(抽象类、接口、构造函数、重载、静态方法和静态成员)
1.抽象类 抽象类关键词 abstract (抽象) override (重写) 在父集中用 abstract 表示抽象类,抽象方法,在子集中用 override 改写 抽 ...
随机推荐
- java.lang.Class类中的某些方法
反射的代码会经常遇到,Class类中方法真的多,且用的少,大多用在底层源码这块,既然看到了,就记录一下吧,说不定以后厉害了,自己封装框架,haha getComponentType()方法: Syst ...
- Jfinal-Plugin源码解读
PS:cnxieyang@163.com/xieyang@e6yun.com 本文就Jfinal-plugin的源码进行分析和解读 Plugin继承及实现关系类图如下,常用的是Iplugin的三个集成 ...
- Codeforces Beta Round #2 A,B,C
A. Winner time limit per test:1 second memory limit per test:64 megabytes input:standard input outpu ...
- 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法
在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...
- C#采用rabbitMQ搭建分布式日志系统
网上对于java有很多开源的组件可以搭建分布式日志系统,我参考一些组件自己开发一套简单的分布式日志系 全部使用采用.NET进行开发,所用技术:MVC.EF.RabbitMq.MySql.Autofac ...
- AD转换
一.AD转换的概念 AD转换的功能是把模拟量电压转换为数字量电压.DA转换的功能正好相反,就是讲数字量转换位模拟量. 二.芯片PCF8591介绍 PCF8591是一个单片集成.单独供电.低功耗.8- ...
- 【学习笔记】Java finalize()的使用
<Java编程思想>中有提到,Java的垃圾回收器并不是那么靠谱,垃圾回收会占用很大的资源开销,垃圾回收器很懒,当变量和对象不再被引用.脱离作用域的时候,垃圾回收器会不定时的进行垃圾回收, ...
- 整理关于web项目如何防止CSRF和XSS攻击的方法
1 了解CSRF的定义 CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding, ...
- 网站搭建中,怎么区分ASP和PHP
1:空间支持上 ASP:程序要求比较低,空间只要支持ASP+access即可运行 PHP:配置要求比较高,空间需要支持PHP及数据库,而且程序和数据库是单独的,一般的 unix空间都是这种配置. 2: ...
- 小白的Python之路 day5 logging模块
logging模块的特点及用法 一.概述 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你 ...