java 抽象类

摘要:
抽象方法的定义:通过abstract关键字来修饰的类称为抽象类;我的总结:抽象类用private修饰,里面可以有用private修饰的方法,强制子类进行覆写;可以理解为:具有某些公共方法的一个总结类。抽象类不可以实例化,有时看到的近似实例化是多态机制的体现,并不是真正的实例化。abstract[非private访问修饰符]返回值类型方法名称;抽象方法要存放在抽象类中。因为抽象类不可以实例化}}

当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的行为方式,那么这些方法都有具体的方法体。

但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法。

抽象方法的定义:通过abstract关键字来修饰的类称为抽象类;

我的总结:

抽象类用private修饰,里面可以有用private修饰的方法(没有方法体),强制子类进行覆写;

可以理解为:具有某些公共方法的一个总结类。

可以定义被abstract修饰的抽象方法

抽象方法只有返回类型和方法签名,没有方法体。

备注:

抽象类可以含有普通方法

抽象类不能创建实例对象(不能new

需要子类覆盖掉所有的抽象方法后才可以创建子类对象,否则子类也必须作为抽象类

列举常见的几个抽象类:

流的四个基本父类

InputStream,OutputStream,Reader,Writer

我的总结:

抽象类是类的一种特殊情况:据有类的一切特点,但是不能实例化;一般的都得带有抽象方法。

抽象类不可以实例化,有时看到的近似实例化是多态机制的体现,并不是真正的实例化。

Eg:

Socket s = new Socket();

OutputStream os = s.getOutputStream();

左边是OutputStream类型变量的声明,右边是获取抽象类OutputStream的一个实例对象!

package testDemo2;

abstractclass Person{

}

class Student extends Person{

}

publicclass Demo2 {

publicstaticvoid main(String[] args) {

Person p = new Student();//体现的是多态,父类声明实例化子类对象。而不是抽象类实例化

}

}

abstract方法

分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是功能声明相同,但功能主体不同。

那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。

abstract [非private访问修饰符] 返回值类型 方法名称(参数列表);

抽象方法要存放在抽象类中。

抽象方法也可以存在于接口中

Eg:

package reviewDemo;

abstractclass Person3{

abstractvoid show();

abstractvoid inof();

void turn(){

}

}

class NewP extends Person3{

@Override

void show() {

}

@Override

void inof() {

}

//不覆写的话会报错

}

publicclass Demo15 {

publicstaticvoid main(String[] args) {

//new Person3();报错!因为抽象类不可以实例化

}

}

免责声明:文章转载自《java 抽象类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java多线程:jdk并发包的总结(转载)svg标签元素定位最有效的办法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java笔试练习题

选择题(共50题,每题1.5分,共75分。多选题选不全或选错都不得分。)1. 以下属于面向对象的特征的是(C,D)。(两项)A) 重载B) 重写C) 封装D) 继承2. 以下代码运行输出是(C)public class Person{private String name=”Person”;int age=0;}public class Child ext...

接口和简单工厂设计模式

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 接口: 接口就是纯抽象类的演变,实现接口的类都必须实现接口的的方法。接口里全部都是方法的声明,没有方法的实现。接口里的方法都是public修饰的,就算不写public关键字,也是默认public的,里面的申请的属性 全...

解读eXtremeComponents代码结构--转载

原文地址:http://blog.csdn.net/lark3/article/details/1937466 大致整理了去年写的东西,罗列如下: ec是一系列提供高级显示的开源JSP定制标签,当前的包含的组件为eXtremeTable,用于以表形式显示数据。ec现在的版本是1.0.1,由Jeff Johnston开发的,网址:http://www.ex...

Java中常见设计模式面试

一、设计模式的分类   总体来说设计模式分为三大类:   创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。   结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。   行为型模式,共十一种: 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式...

C#基础知识

C#基础 1、面向对象、面向接口、面向方向编程的区别: 面向对象:强调对具有相同行为和属性事物的封装,更注重封装的完整性和功能的完整性 面向接口:定义要实现某类功能要实现的统一规范,而具体实现过程由实现该接口的类型决定 面向方面:主要提供与业务逻辑无关的操作。比如系统中多个地方要使用到的文件上传功能,可以使用面向方向的思想在所有上传文件之前对文件的大小、格...

kotlin面向对象之抽象类、继承、多态

继承: 比较简单,直接看如何使用,这里以父亲与儿子的关系为例: 接着定义儿子并且继承父亲,如下: 是用":"号来继承的,但是此时报错了,看下错误提示: 在kotlin的类并非是人人都可以继承的,从提示来看说Father是一个final类型的,好奇怪,也没对Father类声明为final呀,要想解决这个问题,这时需要在Father类中增加一个关键字"o...