Java基础(抽象类和接口)
Java基础
1、抽象类
①抽象类是对类的抽象,比如波斯猫和加菲猫都属于猫这个类的类对象,猫、狗、鸟又可以抽象为动物这个大类,动物这个类可以被看成是抽象类。
②抽象类的定义:
定义类时在class前面加上abstract;
抽象类时无法被实例化的也就是无法创建抽象类对象,但是抽象类中还是有构造方法的。但是这个构造方法的作用其实就是给子类构造这个抽象类父类的特征。
同时,在抽象类中具有的抽象的方法,也就是只有方法头没有方法体的方法。抽象方法定义:[访问权限修饰符] abstract [返回值类型] 方法名() 特别注意此处没有“{}”(相比于空方法 空方法不被abstract修饰 同时空方法有“{}”只是里面没有内容)
注意:abstract和final、private、static等不能组合使用。
③ 抽象类的作用
因为抽象类是不能被实例化的那么抽象类就只有被继承的作用,其中抽象类中抽象的方法也是没有方法体的,这也是给子类去重写的。
抽象方法只能在抽象类中定义。
package com.wgj.AbsTest;abstract class AbsFa {abstract void hello();abstract void eat();public void run() {System.out.println("我正在跑步");}
}
package com.wgj.AbsTest;public class Absso extends AbsFa{public void hello() {System.out.println("Hello!");}public void eat() {System.out.println("我正在吃饭");}
}
package com.wgj.AbsTest;public class AbsMain {public static void main(String[] args) {Absso A = new Absso();A.eat();A.hello();A.run();}
}
/*
我正在吃饭
Hello!
我正在跑步[]
*/
2、接口
接口是方法抽象的集合,抽象类类的抽象,类是对象的抽象,接口是对象方法的抽象。
①接口的定义:Interface 接口名() {} 接口也可以用abstract修饰,因为接口本身中的方法都是抽象的,但是如果接口中有方法带了方法体也就是“{}”,编译就会报错。
package com.wgj.InfaTest;public interface Test {public void run() {};
}
//接口 abstract 方法不能有主体
接口中只能定义常量,不能定义其他成员变量,前面的修饰可以省略但是类型不能省略(省略final)。接口里面是没有构造方法的,所以成员属性不能赋值。
②接口的作用:
类是无法继承接口的,接口不能成为父类。
但是接口之间是可以继承的也可以多继承。多继承了之后不能重写父接口的方法。能重写的话就属于子父类关系了。
③接口的使用:
接口都是用来被实现的,也就是类通过implements关键字来实现接口中的方法。实现类一旦实现接口就必须要实现接口中的所有抽象方法。实现类实现接口的方法时一定要加上public修饰符。
接口练习代码:
package com.wgj.InfaTest;public interface Computer {//定义一个Computer接口void open();//接口里有open这个方法
}
package com.wgj.InfaTest;public interface Game1 {void play();
}
package com.wgj.InfaTest;
package com.wgj.InfaTest;public class Testimpl implements Computer {//定义一个Computer的实现类 private Game1 Game;public void setGame(Game1 game) {this.Game=game;}public void open() {Game.play();}
}
class LoL implements Game1 {//定义Game1实现类public void play() {System.out.println("正在玩LOL!");}
}
class Sekiro implements Game1 {//定义Game1实现类public void play() {System.out.println("正在玩sekiro!");}
}
package com.wgj.InfaTest;public class Main {public static void main(String[] args) {LoL lol = new LoL();Sekiro zl = new Sekiro();lol.play();zl.play();}
}
/*
正在玩LOL!
正在玩sekiro!
*/
Java基础(抽象类和接口)相关推荐
- Java基础 抽象类和接口的区别、equals 与 == 的区别
一.抽象类和接口有什么区别 抽象类与接口都用于抽象,但是抽象类可以有自己的部分实现,而接口规范某一行为,调用者实现这个接口. 主要区别: 1.抽象类还是类只能单继承,而接口却可以多实现. 2.抽象类满 ...
- [Java基础]抽象类和接口的区别
抽象类和接口的区别:
- java基础-抽象类和接口
我们从我们实际设计场景中来切入这个话题 先来举一个简单的例子: 狗都具有 eat() .sleep() 方法,我们分别通过抽象类和接口定义这个抽象概念 //通过抽象类定义public abstract ...
- [Java基础]抽象类和接口名作为形参和返回值
- Java基础学习第十二讲:Java面向对象---抽象类和接口
Java面向对象-抽象类和接口 一.抽象类 抽象的定义: 我们在日常生活中,经常通过总结一些事物的共性来对事物进行分类,这种共性可能是一些相同的属性,也可能是一些相同的动作.通过总结,我们能够清晰的划 ...
- 关于Java中抽象类和接口的一点思索
Java中抽象类和接口的一点思索 成员方法上的区别: 1. java中的抽象类可以提供成员方法的实现细节,抽象方法只能是被public和protected来修饰 配合abstract关键字,子类需要实 ...
- Java中抽象类和接口在概念、语法和应用上的区别和关系
2019独角兽企业重金招聘Python工程师标准>>> 春招开始了,盆友们都忙着准备笔试.准备面试,复习学过的知识点,当然我也不例外,在这里祝每一个"有心人"心想 ...
- java final类的写法_重拾JavaSE基础——抽象类、接口、代码块、final和枚举
今天继续回顾Java基础,有些东西用得不多,大家看看知道语法就好 主要内容 抽象类 抽象方法 抽象方法的写法 抽象方法是否可以私有化 抽象类的特征 抽象类有无构造器,能否实例化对象 抽象类的结构 抽象 ...
- 关于Java的抽象类与接口
当初学Java基础的时候很low,上课没怎么听,网课也没有一直坚持看到有关接口跟抽象类的视频,看到类与对象这一部分的视频就放弃了.太后悔了,现在对Java编程的兴趣来了,看完了狂神Javawe与Spr ...
最新文章
- oracle exec 和 call 区别
- Tensorflow基础入门十大操作总结
- Bye Bye Embed-再见了Embed,符合web标准的媒体播放器代码
- jax-ws和jax-rs_带有JAX-WS和Spring的Web服务应用程序
- 前端学习(6):javascript简介
- QQ邮箱怎么发送文件夹 怎样在QQ邮箱里发送压缩文件夹
- R中读取包含中文字符的文件时这个诡异的错误你见过吗?
- 机器人三定律真有用?但AI可能并不会遵守
- 写地道的Python
- 计算机 识别u盘 原理,电脑与USB3.0之间的识别过程,识别原理,高额金币悬赏!...
- markdown一边写一边预览_MarkDown使用笔记
- CenterNet :Objects as Points 详解
- css中背景的应用及BFC与IFC应用
- linux中文乱码解决方案
- 智能家居内网服务器,手把手教你搭建自己的智能家居IOT系统
- 快速开发~Rafy框架的初步认识
- Linux 常规安装MySQL 执行启动命令报错(附安装方法)
- python万年历节气_用Python精确计算100年内二十四节气日期
- JS实现保存当前页面
- 我终于把C++多文件编程理解透彻了
热门文章
- 面试官:Redis集群有哪些方式,Leader选举又是什么原理呢?
- 企业微信--配置机器人
- 路灯控制C语言程序,PT2007C 智能路灯控制系统
- JAVA萌新学习day16
- 微波炉甜点(附做法)
- 3.2学生-课程数据库 (一)数据定义
- GRN: Generative Rerank Network for Context-wise Recommendation
- ansible分离部署lamp
- Does /etc/hosts.allow and /etc/hosts.deny have any use whatsoever in RHEL 8?
- 深入认识笔记本电脑的网卡