抽象类(abstract class)
package com.bjsxt.oop.abstractClass;
//抽象类
public abstract class Animal {
//因为父类的方法总是被重写 那就没写的必要了 但是有声明的必要 声明成抽象方法 包含了 抽象方法的类 是抽象类 必须加上关键字 abstrat
/*
public void run(){
}
*/
//下面是抽象方法 只是声明没有实现 所以也就没有{}
public abstract void run();
//普通方法
public void breath(){
System.out.println("呼吸");
} }
//如果一个类继承抽象类 那必须 1.实现抽象类 或者 2.你定义一个抽象类 去继承另外一个抽象类
/*The type Cat must implement the inherited abstract method Animal.run()
class Cat extends Animal{
}
*/
// 1.实现抽象类,重写了抽类型的方法 完成了具体实现
class Cat extends Animal{
//@override是注解 含义 必须重写 不能改名
@Override
public void run() {
System.out.println("猫步跑");
}
}
// 2.你定义一个抽象类 去继承另外一个抽象类
//abstract class Cat extends Animal{
//}
class Dog extends Animal{
@Override
public void run() {
System.out.println("狗跑");
}
} /**
* 总结
* 为什么需要需要抽象类?如何定义抽象类?
* 抽象类是为所有的子类提供了一个通用模板,子类可以通过这个模板进行扩展
* 通过抽象类,可以避免子类设计的随意性,通过抽象类,我们就可以找到很严格的限制子类的设计,使子类之间更加通用、。
*
* 要点
* 有抽象方法的类智能定义成抽象类
* 抽象类不能实例化,既不能用new来实例化抽象类
* 抽象类可以包含属性,方法,构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
* 抽象类只能用来继承
* 抽象方法必须被子类实现。
*/
package com.bjsxt.oop.abstractClass;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// Animal a = new Animal();
// 调用了抽象类的构造方法 即使他存在
// * 要点
// * 有抽象方法的类智能定义成抽象类
// * 抽象类不能实例化,既不能用new来实例化抽象类
// * 抽象类可以包含属性,方法,构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
// * 抽象类只能用来继承
// * 抽象方法必须被子类实现。
}
}
抽象类(abstract class)的更多相关文章
- php中的抽象类(abstract class)和接口(interface)
一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...
- PHP的接口类(interface)和抽象类(abstract)的区别
<?php /** * 接口类:interface * 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类, * 那你就会问,我怎么知道他的某个功能的实现方法是怎么 ...
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来 ...
- [PHP] 抽象类abstract的回顾
1.abstract定义为抽象的类不能被实例化. 2.它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的. 3.被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实 ...
- C++虚函数virtual,纯虚函数pure virtual和Java抽象函数abstract,接口interface与抽象类abstract class的比较
由于C++和Java都是面向对象的编程语言,它们的多态性就分别靠虚函数和抽象函数来实现. C++的虚函数可以在子类中重写,调用是根据实际的对象来判别的,而不是通过指针类型(普通函数的调用是根据当前指针 ...
- 高级类特性----抽象类(abstract class)
抽象类(abstract class) 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用.类的设计应该保证父类和子类能够共享特征.有时将一个父类设计得非常抽象,以至于它没有具 ...
- Java中的抽象类abstract
abstract定义抽象类 abstract定义抽象方法,只需要声明,不需要实现 包含抽象方法的类是抽象类 抽象类中可以包含抽象方法,也可以包含普通方法 抽象类不能直接创建,可以定义父类引用变量指向子 ...
- Day06_30_抽象类(Abstract)
抽象类 Abstract 什么是抽象类? 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就 ...
- c#中抽象类(abstract)和接口(interface)的相同点与区别
相同点: 1.都可以被继承 2.都不能被实例化 3.都可以包含方法声明 4.派生类必须实现未实现的方法 区别: 1.抽象基类可以定义字段.属性.方法实现.接口只能定义属性.索引器.事件.和方法声明,不 ...
- C# 抽象类abstract
不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例,有未被实现的方法.抽象类不可以new对象. "一个包含一个或多个纯虚函数的类叫抽象类,抽象类不能被 ...
随机推荐
- linux ping报错Name or service not known
ubuntu设置静态ip以后忘记设置dns,ping的时候报错:Name or service not known 添加dns即可 vi /etc/resolv.conf nameserver 8.8 ...
- hello word 应用程序的编写
1.各类文件的书写 src中的文件: hello文件夹中的Makefile文件 # # Copyright (C) - OpenWrt.org # # This is free software, l ...
- Oracle RAC的机制与测试方法
Oracle RAC的机制与测试方法 标签: rac 机制 测试 2016-05-25 09:54 1150人阅读 评论(0) 收藏 举报 分类: oracle(2) 1.RAC原理 Oracle ...
- ORM练习项目-图书管理系统(BMS)实现细节
分析 一本书 可以由多个作者编著 一本书只能由一个出版社出版 一个作者可以写多本书 每个作者有自己的简介 对应关系: Author-Book # 多对多 Publish-Book # 一对多 Auth ...
- 禁止Grid、TreeGrid列排序和列菜单
Ext的Grid和Treegrid默认提供列菜单的功能,在列菜单中可以进行排序以及控制列显示状态. 在实际项目中,往往有些列是不需要用户看到的,因此就必须屏蔽列菜单的功能. 1.屏蔽Grid,包括Ed ...
- 【转载】如何在 Github 上发现优秀的开源项目?
之前发过一系列有关 GitHub 的文章,有同学问了,GitHub 我大概了解了,Git 也差不多会使用了,但是还是搞不清 GitHub 如何帮助我的工作,怎么提升我的工作效率? 问到点子上了,Git ...
- 未知行数的文字在div中垂直居中
今天工作中遇到一个问题,就是未知行数的文字在div中怎么垂直居中,如下面的3个图: 图1 图2 图3 图1是2行文字的效果,图2是不经过css垂直居中处理的效果,图3是经过css垂直居中后的效果,ht ...
- skopt学习之路1-函数介绍:dummy_minimize
def dummy_minimize(func,dimensions,n_calls=100, x0=None, y0=None, random_state=None, verbose=False, ...
- 《Linux内核精髓:精通Linux内核必会的75个绝技》目录
1章 内核入门HACK #1 如何获取Linux内核HACK #2 如何编译Linux内核HACK #3 如何编写内核模块HACK #4 如何使用GitHACK #5 使用checkpatch.pl检 ...
- mysql更新(三)语句 库的操作 表的操作
04-初始mysql语句 本节课先对mysql的基本语法初体验. 操作文件夹(库) 增 create database db1 charset utf8; 查 # 查看当前创建的数据库 show ...