抽象(继承)

当多个类中出现了相同功能但功能主体不同 ,这时可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主体;

抽象:看不懂。

抽象类特点:

1:抽象方法一定在抽象类中。

2:抽象方法和抽象类必须被abstract关键字修饰

3:抽象类不可以用new创建对象,因为抽象方法没意义

4:抽象类中的方法要被覆盖,必须有子类函数复写所有的抽象方法后,建立子类的对象调用;

如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类;

抽象类和一般类没有什么太大不同

该怎么描述就怎么描述

假如我们在开发一个系统是需要对员工进行建模,员工包含3个属性;

姓名、工号以及工资。经理也是员工,除了含有员工的属性外,还有一个奖金属性,请使用继承的思想设计员工类和经理类。

要求类中提供必要的方法进行属性访问;

员工类:name id pay

经理类:继承了员工,并有自己特有的bonus.

abstract class Employee
{
	private String name;
	private String id;
	private double pay;

	Employee (String name,String id,double pay)
	{
		this.name=name;
		this.id =id;
		this.pay=pay;
	}
	public abstract void work();
}
class Manager extends Employee
{
	private int bonus;
	Manager(String name,String id,double pay,int bonus)
	{
		super(name,id,pay);
		this.bonus=bonus;
	}
	public void work()
	{
		System.out.println("manager work");
	}
}
class pro extends Employee//普通员工
{
	pro(String name,String id,double pay)
	{
		super(name,id,pay);
	}
	public void work()
	{
		System.out.println("pro work");
	}
}
class AbstractDemo
{
	public static void main(String[] args)
	{
		new Manager("lisi","909",923.7,234).work();
		new pro("lisi","909",923.7).work();
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 05:02:25

抽象(继承)的相关文章

抽象&继承&重写

抽象&继承&重写 定义父类 abstract class Car{ //是抽象类,不能直接被实例化 val carBrand: String //字段没有初始化值,就是一个抽象字段 def info() //抽象方法,不需要使用abstract关键字 def greeting() {println("Welcome to my car!")} } 子类实现 class BMWCar extends Car { //重写父类字段,需要使用override关键字 overr

多态&抽象&继承

多态 package cn.itcast.extend; public class ExtendDemo2 { public static void main(String[] args) { A a=new B();//多条 System.out.println(a.num); a.show();//非静态 a.say();//静态方法 } } class A{ int num=10; //静态方法 public static void say(){ System.out.println("父

Java基础笔记-抽象,继承,多态

抽象类: abstract修饰 抽象方法必须定义在抽象类中,抽象类不能创建对象. 在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象. 特点是: 1.定义在抽象类中 2.方法和类都用abstract修饰,在抽象类中的方法不写abstract也默认的是抽象方法. 3.不能用new来创建对象,调用抽象方法没意义. 4.抽象类中的方法被使用,必须由子类覆写其所有的抽象方法后,才能建立子类对象进行调用. 如果子类只覆盖了部分的抽象方法.那么该子类还是一个抽象类. 5.抽象类不可以被实例化. 继承

python进阶(5):组合,继承

前两天我们认识了面向对象也对面向对象有了初步的认识今天我们先会说一点组合的进阶,今天重点是继承. 一.组合 组合只有一个例子因为组合只作为上一章的补充内容 #老师 课程 生日 class Course: def __init__(self,name,period,price): self.name = name self.period = period self.price = price class Birth: def __init__(self,year,month,day): self.

Java 封装 继承 多态

一. 封装 a) 概念:装进去,封起来 b) 作用:方便.安全 方便:调用(一处编写,N处调用),修改(一处修改,处处响应). 安全:数据安全(将属性私有化,提供共有方法,可以在方法中验证传参的有效性,合法性),访问安全(通过包或访问修饰符,限制类或属性或方法的访问级别,只让需要知道的地方知道) 1.1. 构造方法 a) 定义:负责对象初始化任务,通常用来给属性赋值的. b) 特点:与类同名,没有返回类型,系统默认会提供无参构造方法. Dog dog = new Dog(); c) 变量的作用域

PYTHON3中 类的继承

继承 1:什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,也就是说在python中支持一个儿子继承多个爹. 新建的类成为子类或者派生类. 父类又可以成为基类或者超类. 子类会遗传父类的属性. 2:为什么要用继承 减少代码冗余(也就是重复写代码). 3:怎么用继承: 我们定义两个类: class parenclass1: pass class parenclass2: pass 在定义两个类: class subclass1: pass class subc

lesson 042 —— 继承

lesson 042 -- 继承 什么是继承? 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类.子类会继承父类的属性. python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClas

Java继承详解

目录 前言 继承的格式: 继承的特点: 继承的优缺点 继承的注意点(重要) 继承的使用 前言 类是对对象的抽象,具有共同属性和行为的许多对象抽象出一个类. 例如:有三个学生小明,小红,小李都有姓名,年龄,身高,体重,都会吃,睡,学习等等,我们可以将这些属性和行为抽象出来成为一个类,也就是人类. 假设多个类存在相同属性和行为时,我们同样可以将这些内容抽取到单独的一个类中,那么这多个类没有必要再定义这些属性和行为,只需要继承这个单独的类就好了,这就是继承. 总结:类是对对象的抽象,继承是对某一批类的

继承 in her it

''' in her it 继承 de rive 派生 python2 (经典类|新式类) python3 (新式类) 1. What is inheritance? 什么是继承? 继承是一种新建类的方式 新建的类为 --> 子类or派生类 父类称为 --> 基类or超类 python中支持多继承 2. Why inheritance? 为什么用继承? 减少代码的冗(rong)余 减少代码的啰嗦··· 3. How to use inheritance? 怎么用继承? 通过内置__bases_

继承与派生知识点

派生与继承 继承(组合) 继承指的是新建类的方法,新建的类称之为子类或者派生类 子类继承的类叫做父类,也称之为基类或者超类 特征:(面试) 子类可以继承父类的属性(特征或者技能),并且可以派生出自己的属性(特征与技能) 注:在Python中,一个子类可以继承多个父类,其他语言只能一个子类继承一个父类 继承的目的: 为了减少代码的冗余度 继承实现的方法: 1: 首先确定谁是子类,谁是父类 2 在定义时,子类(父类),实现继承 如何寻找继承关系: 先抽象,再继承 抽象:抽取相似的部分,称之为抽象 继