抽象类和抽象方法

什么是抽象类?

使用 abstract 修饰的类称为抽象类

public abstract class Person {
}

抽象类的特征

1) 抽象类不可以创建对象

2) 抽象类可以有构造方法

public abstract class Person{
public Person(){
System.out.println("Person类中的无参构造方法");
}
}
抽象类中构造方法的作用,是提供给子类调用的。
package com.bjsxt.abstractpro;
public class Student extends Person {
public Student(){
super();//调用直接父类的无参构造方法
System.out.println("Student类的无参构造方法
");
}
} public class TestPerson {
public static void main(String[] args) {
//Person p=new Person();
Student stu=new Student();
}
}

3) 抽象类中可以包含的成员

成员变量,成员方法,静态方法,构造方法,fina修饰的方

法,抽象方法

public abstract class Person {
//(1)成员变量/实例变量/属性
private String name;//姓名
//(2)成员方法/实例方法
public void info(){
System.out.println("大家好,我叫"+name);
}
//(3)静态方法
public static void show(){
}
//(4)构造方法
public Person(){
System.out.println("Person类中的无参构造方法
");
}
//(5)final修饰的方法,只能被子类调用,不允许被子
类重写
public final void fun(){
}

使用 abstract 修饰的方法称为抽象方法

抽象方法的特征

  1. 抽象方法不允许有方法体,只能以分号“;”结尾
  2. 抽象方法只能声明在抽象类中 (含有抽象方法的类必须

    是抽象类)
  3. 抽象类中可以包含 0 个或多个抽象方法
  4. 抽象方法必须被子类实现
  5. 如果子类不能实现父类中的抽象方法,那么子类也必须 是抽象类

    总结:abstract可以修饰类和方法

什么情况下使用抽象方法和抽象类

通过抽象类,可以避免子类设计的随意性。通过抽象类,

我们就可以做到严格限制子类的设计,使子类之间更加通

用。(程序的可扩展和可维护性)

什么情况下使用抽象类?父类的名称比较抽象,创建对象无

意义。

(使用多态)

Animail 动物类 –》abstract, →abstract shout()

每一种动物 ,分别实现发声的方法

package com.bjsxt.test;

public abstract class Animal {
public abstract void shout();
}
class Dog extends Animal{ @Override
public void shout() {
System.out.println("狗狗在叫:汪汪汪!"); } }
class Cat extends Animal{ @Override
public void shout() {
System.out.println("猫在叫:喵喵喵!"); } }
package com.bjsxt.test;

public class TestAnimal {
public static void main(String[] args) {
//父类引用指向子类对象
Animal dog=new Dog();
Animal cat=new Cat();
//调用相同方法
dog.shout();
cat.shout(); }
}

Java修炼——面向对象_抽象类和抽象方法的更多相关文章

  1. Java之旅_面向对象_抽象类

    参考并摘自:http://www.runoob.com/java/java-abstraction.html Java抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有 ...

  2. Java面向对象_抽象类、接口

    一.抽象类 概   念:很多具有相同特征和行为的对象可以抽象为一个类:很多具有相同特征和行为的类可以抽象为一个抽象类 关键字:abstract 规   则:1.抽象类可以没有抽象方法,有抽象方法的类必 ...

  3. Java 基础 面向对象和抽象类

    面向对象变量 局部变量和成员变量区别 区别一:定义的位置不同 定义在类中的变量是成员变量 定义在方法中或者{}语句里面的变量是局部变量 区别二:在内存中的位置不同 成员变量存储在对内存的对象中 局部变 ...

  4. Java入门 - 面向对象 - 04.抽象类

    原文地址:http://www.work100.net/training/java-abstract.html 更多教程:光束云 - 免费课程 抽象类 序号 文内章节 视频 1 概述 2 Java抽象 ...

  5. Java:【面向对象:抽象类,接口】

    本文内容: 抽象类 接口 抽象类与接口的异同 首发日期:2018-03-24 抽象类: 虽然已经有了父类,但有时候父类也是无法直接描述某些共有属性的,比如哺乳类和人类都会叫,而一般来说哺乳类这个父类并 ...

  6. PHP面向对象之抽象类,抽象方法

    抽象类,抽象方法 抽象类: 是一个不能实例化的类: 定义形式: abstract  class  类名{} 为什么需要抽象类: 它是为了技术管理而设计! 抽象方法: 是一个只有方法头,没有方法体的方法 ...

  7. java面向对象_抽象类和接口

    一.抽象类 1.抽象方法:由abstract修饰.只有定义没有方法体.用一个分号结尾. 2.抽象类: 1)包含抽象方法的类必须是抽象类 2)由abstract修饰 3)不能被实例化 4)抽象类如果不被 ...

  8. Java面向对象_抽象类应用——模板方法模式

    概念:定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤. 去个例子分析一下这个概念: public cla ...

  9. Java修炼——面向对象的三大特征_多态_多态的三个必要条件

    多态指的是同一个方法调用,由于对象不同可能会有不同的行为,现实生活中,同一个方法,具体实现会完全不同. 多态的要点: 1.多态是方法的多态,不是属性的多态(多态与属性无关) 2.多态的存在有三个必要条 ...

随机推荐

  1. go中的数据结构接口-interface

    1. 接口的基本使用 golang中的interface本身也是一种类型,它代表的是一个方法的集合.任何类型只要实现了接口中声明的所有方法,那么该类就实现了该接口.与其他语言不同,golang并不需要 ...

  2. MyBatis批量更新动态sql

    <update id="updateDataKetState"> update ${tablespace}.IDEA_DATAKEY_STATE <trim pr ...

  3. PHP队列的实现详细操作步骤

    队列是一种特殊的线性表,它只允许在表的前端,可以称之为front,进行删除操作:而在表的后端,可以称之为rear进行插入操作.队列和堆栈一样,是一种操作受限制的线性表,和堆栈不同之处在于:队列是遵循“ ...

  4. 领扣(LeetCode)错误的集合 个人题解

    集合 S 包含从1到 n 的整数.不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复. 给定一个数组 nums 代表了集合 S ...

  5. 在VMware通过挂载系统光盘搭建本地yum仓库

    1.首先需要有一个VMware虚拟机: 2.进去虚拟机(这里用Linux下deCentOS进行演示): 3.用root账号进行登录,否则在根目录下没有一些操作权限: 4.打开终端: 5,输入命令“cd ...

  6. 扛把子组20191107-8 beta week 2/2 Scrum立会报告+燃尽图 07

    此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9960 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩 ...

  7. 推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)

    欢迎一起学习 <提升能力,涨薪可待篇> <面试知识,工作可待篇 > <实战演练,拒绝996篇 > 欢迎关注我博客 也欢迎关注公 众 号[Ccww笔记],原创技术文章 ...

  8. Reactor和Proactor模型

    背景 前面介绍了I/O多路复用模型,那有了I/O复用,有了epoll已经可以使服务器并发几十万连接的同时,还能维持比较高的TPS,难道还不够吗?比如现在在使用epoll的时候一般都是起个任务,不断的去 ...

  9. JavaScript笔记十

    1.正则表达式 - 语法: - 量词 {n} 正好n次 {m,n} m-n次 {m,} 至少m次 + 至少1次 {1,} ? 0次或1次 {0,1} * 0次或多次 {0,} - 转义字符 \ 在正则 ...

  10. day 26 面向对象知识网

    1. 成员 - 变量 - 静态字段,类变量 - 方法 - 类方法 - 静态方法 - 实例方法 - 属性2. 对象的嵌套3. 特殊方法 __init__ new call getitem... add ...