Java面向对象_抽象类、接口
一、抽象类
概 念:很多具有相同特征和行为的对象可以抽象为一个类;很多具有相同特征和行为的类可以抽象为一个抽象类
关键字:abstract
规 则:1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类
2.非抽象类继承抽象类必须实现所有抽象方法
3.抽象类可以有方法和属性
4.抽象类不能被实例化
5.抽象类不能声明为final(用final声明的类不能被继承,而抽象类就是要被别的类继承)
public class Practice14 {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
//具体类继承抽象类必须要实现抽象方法
class Man extends Person{
//实现抽象类的抽象方法
public void eat(){
System.out.println("大口吃饭");
}
}
class Women extends Person{
public void eat(){
System.out.println("小口吃饭");
}
}
//抽象类
abstract class Person{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void eat();//没有实现,抽象方法。有抽象方法的一定是抽象类,抽象类不一定有抽象方法
}
二、接口
概 念:1.接口是一组行为的规范、定义
2.使用接口,可以让我们的程序更加利于变化
3.接口是面向对象编程体系中的思想精髓之一
4.面向对象设计法则:基于接口编程
使用规则 :1.接口可以继承多个接口
2.一个类可以实现多个接口
3.抽象类实现接口可以不实现方法
4.接口中所有方法访问权限都是public
5.接口中定义的属性都是常量
public class Practice14 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Girl g=new Girl();
g.cry();
g.eat();
}
}
//一个类实现多个接口
class Girl implements Hit,Eat{
public void cry(){
System.out.println("哭");
}
public void eat(){
System.out.println("吃");
}
}
//接口
interface Hit{
String info="";//属性就是常量 public static final
void cry();//接口中的方法默认为public
}
interface Eat{
void eat();
public default void print(){//默认的方法,jdk1.8中加入的新特性
System.out.println("default");
}
}
Java面向对象_抽象类、接口的更多相关文章
- java面向对象_抽象类和接口
一.抽象类 1.抽象方法:由abstract修饰.只有定义没有方法体.用一个分号结尾. 2.抽象类: 1)包含抽象方法的类必须是抽象类 2)由abstract修饰 3)不能被实例化 4)抽象类如果不被 ...
- Java面向对象_抽象类应用——模板方法模式
概念:定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤. 去个例子分析一下这个概念: public cla ...
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- Java面向对象作业-用接口方式测试向下转型
Java面向对象作业-用接口方式测试向下转型 根据视频的里实例 我们直接修改Test2测试方法: package com.java1234.chap03.sec13; public class Tes ...
- Java面向对象之类、接口、多态
Java面向对象之类.接口.多态 类 class Person { // 实例属性 int age; String name; // 类属性 static int v = 1; // 构造器 publ ...
- Java 面向对象_接口
接口定义 接口就是多个类的公共规范 接口是一种引用数据类型, 最重要的内容是其中的抽象方法 定义格式: public interface MyInterfaceAbstract { // 这是一个抽象 ...
- Java面向对象之抽象方法&接口
在开始写抽象类之前,有一个问题我觉得想清楚会对理解抽象类很有帮助:那就是为什么要设计抽象类? 难道用类还不够么,为什么要设计出抽象类这样一个东西.我们可以换个角度来理解,就是有些类本来就是不应该被实例 ...
- java面向对象程序设计(下)-接口的定义
抽象类是从多个类中抽象出来的模板,如果将这种抽象进行得更加彻底,则可以提炼出一种更加特殊的"抽象类"-接口(interface),Java9对接口进行了改进,允许在接口中定义默认方 ...
- Java核心基础第5篇-Java面向对象_类和对象
Java面向对象之类和对象 一.面向对象概述 Java是完全的面向对象编程(Object Oriented Programming),简称OOP. 面向对象编程的思维方式更加符合大家的日常生活,因为我 ...
随机推荐
- 2006年清华:N的阶乘
题目描述: 输入一个正整数N,输出N的阶乘. 输入: 正整数N(0<=N<=1000) 输出: 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘 样例输入: 4 5 15 样例输出: ...
- virtual judge(专题一 简单搜索 C)
Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...
- 杂项-权限管理:Spring Secutity
ylbtech-杂项-权限管理:Spring Secutity Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在S ...
- T-SQL 高级编程
在Sql Server 中访问数据库一般有2种方式: 1.一种是使用应用程序编程接口API 2.数据库语句 变量:局部变量:以@为前缀,如@Age:全局变量以@@为前缀:(Ps:全局变量以系统定义和维 ...
- Vue之vue.js声明式渲染
Html: <div id="app"> {{ message }} </div> Vue: var app = new Vue({ el: '#app', ...
- Nodejs调试技术
基于Chrome浏览器的调试器 既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能.我们需 ...
- hibernate框架内容整理 学习
1.1 ORM概述 Object Relation Mapping 对象关系映射. 对象-关系映射(OBJECT/RELATIONALMAPPING,简称ORM),是随着面向对象的软件开发方法发展而产 ...
- R中的统计模型
R中的统计模型 这一部分假定读者已经对统计方法,特别是回归分析和方差分析有一定的了解.后面我们还会假定读者对广义线性模型和非线性模型也有所了解.R已经很好地定义了统计模型拟合中的一些前提条件,因此我们 ...
- Luogu 4768 [NOI2018]归程
并不会写Kruskal重构树,两个$log$跑得比较卡. 首先考虑一下没有强制在线的要求怎么办,有一个比较容易想到的做法就是先跑一遍最短路,然后把所有边按照海拔从大到小排序,把所有询问的海拔也从大到小 ...
- 35.windows提权总结
本文参考自冷逸大佬的博客,源地址在这里:https://lengjibo.github.io/windows%E6%8F%90%E6%9D%83%E6%80%BB%E7%BB%93/ windows提 ...