java抽象类和接口

菜菜小谭      2022-04-17     478

关键词:

**********************第九章 抽象类和接口**************************

 

**************************抽象类**************************


一.why 什么时候想到使用抽象类


需求: 矩形、三角形、圆形


方法:

1. 求周长

2. 求面积

3. 说出我有几条边


4. 简单的介绍我自己

打印: 我是一个图形

 

原因1:

矩形、三角形、圆形(都有以上4个相同的方法),当多个类中有相同的属性和方法时,

应该把这些属性和方法提取出来,放到一个父类中(Graph 图形类),其他类(矩形、三角形、圆形)继承继承类,来复用图形类的代码..这是我们以前学过的继承..

但是我们发现 当求周长、求面积、说出我有几条边这几个方法 抽到图形类时,图形类

无法准确实现这3个方法或者说实现起来没有意义,这样需要把这三个方法定义成抽象

方法...(没有方法体的方法 或没有实现的方法)..一个类中一旦有一个方法定义成抽象
的,这个类一定要是抽象类...


原因2:

当子类中 对父类继承下来的方法(求周长) 有各自不同的实现的时候,需要使用抽象类

 

二.what 什么是抽象类


简单的定义(不太准确): 含有抽象方法的类 叫做抽象类..

抽象方法: 没有方法体的方法叫做抽象方法


例如:

public abstract int getLength();//抽象方法


注意:

public abstract int getLength(){

}

不是抽象方法,抽象方法 没有方法体 没有实现,像上面的代码叫做空实现..

(即实现了 但什么也没做)


抽象类是软件设计中的半成品:

1. 有一半是已经完成的

简单介绍一下我自己这个方法 已经实现了 打印我是一个图形


2. 有一半是没有完成的,需要子类去实现它

求周长、求面积、说出我有几条边


三.how 如何定义抽象

需要使用abstract 关键字 修饰类,这个类叫做抽象类


演示代码:

package com.chapter9.演示抽象类;

/**
* 作者: zhangzy
* 公司: 蓝桥软件学院
* 时间: 2017年7月7日 上午9:30:42
* 功能: 演示抽象类
* 抽象类 : 软件设计中的半成品
*/
public abstract class Graph {

//1.求周长
public abstract int getLength();

//2.求面积
public abstract int getArea();

//3.说出我有几条边
public abstract void sayYouJiTiaoBian();

//4.简单的介绍一下我自己
public void simpleIntroduce(){
System.out.println("我是一个图形");
}

public static void main(String[] args) {
//Graph g = new Graph();

}

}


矩形

package com.chapter9.演示抽象类;


public class Rectangle extends Graph{

private int width;
private int height;

public Rectangle(){

}

public Rectangle(int width,int height){
this.width = width;
this.height = height;
}


@Override
public int getLength() {

return 2 * (width + height);
}

@Override
public int getArea() {
return height * width;
}

@Override
public void sayYouJiTiaoBian() {
System.out.println("我是矩形,我有四条边");
}

public static void main(String[] args) {
Rectangle rectangle = new Rectangle(10,30);

int length = rectangle.getLength();

System.out.println(length);
}

}

 

*************************抽象类的若干知识点****************************

1. 抽象类不能够创建对象

因为它是软件设计中的半成品


2. 子类继承抽象类,子类如果想创建对象,必须要重写抽象类的所有抽象方法,

除非子类也是抽象类


**************************************几个小的面试题*************************


1. 抽象方法能使用private来修饰吗?


不可以. 因为抽象方法 是需要子类去继承然后重写它,而private修饰的方法不能被继承 二者矛盾

 

2. 抽象类可以没有抽象方法吗???


抽象类可以不包含抽象方法的, 我就是认为这个类是软件设计中的半成品 所以把它定义成抽象类


3. 抽象方法可以定义成静态的吗???


不可以. 因为静态方法 是使用类名调用的 类名.方法名() 调用该方法 并没有做任何事 没有意义

所以抽象方法不能定义成静态的...


4. 抽象方法可以使用final 修饰吗??


不能. final 最终方法 不能被重写 而抽象方法 是需要子类去重写,二者矛盾


5. 抽象类可以使用 final 修饰吗??


不能. final 修饰的类 是最终类 不能被继承 ,而抽象类 需要子类去继承的...二者矛盾

 

************************************可以修饰类的修饰符******************************


1. 访问控制权限修饰符

public或默认权限

2. 其他

abstract 或 final

strictfp 如果该类用于科学计算 对数值的精度要求比较高 需要使用strictfp 来修饰

 























































































java抽象类和接口

**********************第九章抽象类和接口************************** **************************抽象类**************************一.why什么时候想到使用抽象类需求:矩形、三角形、圆形方法:1.求周长2.求面积3.说出我有几条边4.简单的介绍我自己打印... 查看详情

java抽象类和接口

***********************体会接口的好处*******************************一.可维护、可扩展面向接口编程接口:父类型面向父类编程 二.解耦高内聚、低耦合耦合:类和类之间的关系...只要类和类之间有四种关系就是耦合(关联、继承、实现、... 查看详情

[转]java抽象类和接口

很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。抽象... 查看详情

java抽象类和接口

1Java抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法:一个被声明为abstract而没有具体实现的方法称为抽象方法。abstractvoidtest();//nobodyandabstract  抽象类:如果一个类含有抽象方法,则称这个类为抽象类,抽象类必... 查看详情

java基础5:抽象类和接口

Java基础5:抽象类和接口 1抽象类一般会实现一部分操作,并且留一些抽象方法让子类自己实现,比如Stringbuffer和Stringbuilder的父类abstractStringbuilder。2接口一般指一种规定,比如一个map接口中,可能需要实现增删改查等功能,... 查看详情

java基础-抽象类和接口

抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。抽象定义:  抽象就是从多个... 查看详情

java抽象类和接口的区别

 成员区别抽象类:成员变量:可以变量,也可以常量构造方法:有成员方法:可以抽象,也可以非抽象 接口:成员变量:只可以是常量成员方法:只可以抽象 关系区别类与类:继承,单继承 类与接口:实现,单... 查看详情

抽象类和接口

接口是一种特殊的抽象类接口和抽象类的不同点:  1.抽象类中可以有实例属性;而接口中没有实例属性,Java虚拟机会自动给接口的加上publicstaticfianl修饰符,都是公开的静态常量  2.抽象类中可以有实例方法;而接口中没... 查看详情

[java]抽象类和接口

目录抽象类接口1抽象类定义如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来实例化的类,我们称它为抽象类。抽象类的特点抽象类不能被实例化,但可以引用子类对象。子类必须实现抽象类的抽象方... 查看详情

java-抽象类和接口的区别

1、成员区别: -  抽象类    *  成员变量:可以变量,也可以常量    *  构造方法:有    *  成员方法:可以抽象,也可以非抽象 -  接口    *  成员变量:只可以常... 查看详情

java抽象类和接口

***************************接口*********************************一.why需求一直不变的时候可以不使用接口,需求经常发生改变推荐使用接口...软件产品中需求会经常改变,所以一般都要使用接口...体现了可维护、可扩展的优点二.什么是接口一... 查看详情

java—爆肝1w字❤只为弄懂抽象类和接口(代码片段)

抽象类与接口抽象类定义和语法理解抽象类作用抽象类总结:接口概念接口特性注意事项:实现多个接口接口使用实例Clonable接口和深拷贝抽象类和接口的区别?抽象类定义和语法包含抽象方法的类,叫做抽象类... 查看详情

java复习笔记1--抽象类和接口

...一系列是今年7月份至8月份为实习面试所复习的Java功课~抽象类和接口是Java对抽象概念进行定义的2种机制。抽象类一个类没有足够的信息来描述一个具体的对象,需要其他具体的类才支撑它。抽象类体现了数据抽象的四小,是实... 查看详情

java抽象类和接口

一.抽象类(1)定义抽象,就是不够具体在人脑中,很多的概念其实也是抽象的,例如动物,水果使用了关键词abstract声明的类叫作“抽象类”。 (2)语法体现abstract-抽象的可以修饰类也可以修饰方法1抽象类不能创建实例,... 查看详情

java抽象类和接口

 对于抽象类以及接口的概念,大家都容易把这两者搞混,其实我也一样,在听李建忠老师的设计模式时,他也老把抽象类说成接口,弄的我就更糊涂了,所以找了些网上的资料。抽象类是从一系列相关对象中抽象出来的概念... 查看详情

我是如何理解java抽象类和接口的

在面试中我们经常被问到:Java中抽象类和接口的区别是什么?然后,我们就大说一通抽象类可以有方法,接口不能有实际的方法啦;一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像把标准答案熟练的... 查看详情

java基础5:抽象类和接口(代码片段)

本节主要介绍了抽象类和接口的特性和使用方法。1.抽象类一般会实现一部分操作,并且留一些抽象方法让子类自己实现,比如Stringbuffer和Stringbuilder的父类abstractStringbuilder.2.接口一般指一种规定,比如一个map接口中,可能需要实... 查看详情

java基础5:抽象类和接口

本文主要介绍了抽象类和接口的特性和使用方法。具体代码在我的GitHub中可以找到https://github.com/h2pl/MyTech文章首发于我的个人博客:https://h2pl.github.io/2018/04/24/javase51抽象类一般会实现一部分操作,并且留一些抽象方法让子类自己... 查看详情