JAVA面向对象-----抽象类】的更多相关文章

如果某个父类只知道其子类应该包含哪些方法,但无法知道如何实现这些方法,同时要使用多态的特性,怎么办? 抽象方法:关键字abstract允许在一个类中创建一个或多个没有方法体的方法--只提供方法签名,但没有相应的具体实现(不是空方法体). 包含抽象方法的类只能被定义为抽象类,但抽象类可以没有抽象方法,只是为了不被实例化. 抽象类可以包含成员变量.方法(抽象或具体).构造器和初始化块等,但不能被实例化,只能被当作父类被其他子类继承. 子类必须实现所有父类/接口的抽象方法,除非当前类也是抽象类. 抽象…
抽象类可以没有抽象方法(java.awt.*的类就是这样子操作的). 抽象类可以继承普通类与抽象类. 抽象类不能直接使用类名创建实例,但是有构造方法,构造方法是让子类进行初始化. 抽象类一定有构造方法. abstract与其他修饰符的关系: final与abstract不能共存: final:它的作用 修饰类代表不可以继承 修饰方法不可重写 abstract修饰类就是用来被继承的,修饰方法就是用来被重写的. static static修饰的方法可以用类名调用, 对于abstract修饰的方法没有…
本文引用海子的一篇文章:http://www.cnblogs.com/dolphin0520/p/3811437.html 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: abstract void fun(); 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰.因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象. 下面…
final关键字 1.final关键字在java中被称为完结器,表示最终的意思: 2.final能声明类.方法.属性: 3.使用final声明的类不能被继承,使用final声明的方法不能被重写,使用final声明的变量变成常量,常量是不可被修改的. 抽象类 概念 包含一个抽象方法的类就是抽象类. 抽象方法 声明而未被实现的方法,抽象方法必须使用abstract关键字声明. 注:抽象类不能直接实例化,需要通过其子类进行实例化.抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法…
1抽象类 为什么使用抽象类 1:定义Dog类 有颜色属性和叫的方法 2:定义Bird类 有颜色属性和叫的方法 3:定义其父类Animal 1:颜色的属性可以使用默认初始化值. 2:叫的方法在父类中如何定义? 1:狗是旺旺 2:鸟是叽叽喳喳 3:可以将父类的方法定义为狗叫让鸟继承父类重写叫的方法 1:鸟怎么确定是否要重写父类方法. 2:不重写,编译和运行都没有问题,只是执行鸟叫的方法就会出现狗叫 4:父类的方法很难确定. class Animal { String color; void shou…
1.abstract:可以修饰类和方法,被abstract修饰过的称为抽象类和抽象方法. 抽象类: 除了不可以创建对象, 其他和普通类一致. 可以有成员方法.静态方法和构造方法(提供给子类调用)等. 抽象方法: 含有抽象方法的类必须是抽象类, 但抽象类不一定有抽象方法; 抽象方法不允许有方法体,只能以分号结尾 , 即只做声明 public abstract class Lianxi { public abstract void print(); 3 } 抽象方法必须被子类实现,如果子类不能实现父…
抽象类 用abstract关键字来修饰一个类时,这个类就叫抽象类,用abstract关键字来修饰一个方式时,这个方法就是抽象方法.当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实现.那为什么要用抽象类呢?当父类的一些方法不能确定时,可以先在抽象类里定义抽象方法. 注意事项 Ⅰ.抽象类不能被实例化 Ⅱ.抽象类不一定要包含abstract方法. Ⅲ.一旦类包含了abstract方法,则这个类必须声明为abstract Ⅳ.抽象类不能有主体 实例 package com.beek…
abstract class Animal { abstract void eat(); } class Cat extends Animal { void eat() { System.out.println("eat fish"); } } class Dog extends Animal { void eat() { System.out.println("gnaw bone"); } } class Pig extends Animal { void eat…
/** 雇员示例: 需求:公司中程序员有姓名,工号,薪水,工作内容 项目经理除了有姓名,工号,薪水还有奖金,工作内容 对给出需求进行数据建模 分析: 在这个问题领域中,先找出涉及的对象 通过名词提炼法 程序员: 属性:姓名,工号,薪水 行为:工作 经理: 属性:姓名,工号,薪水,奖金 行为:工作 程序员和经理不存在直接继承关系, 但是程序员和经理却具有共性内容, 可以进行抽取,因为他们都是公司的雇员 可以将程序员和经理进行抽取,建立体系 */ //公司体系的建立 //雇员 class Emplo…
java面向对象的特征之一:封装 1.封装性的使用 package edu.tongji.classdemo; /* 封装性 1.封装的目的:保护某些属性和方法不被外部所见 2.封装的实现 为属性和方法进行封装通过关键爱你字private声明 实现该属性的set和get方法,为外部所访问 */ class Person{ private int age; private String name; //以下可以快捷实现: //右键->source->generate getters and se…