2018.1.13面向对象之继承复习

贰零一八 贰零一八     2022-10-09     275

关键词:

class Rect{
	int width=2, height=6;
	void setWidth(int width){
		this.width=width;
		//代码1 将参数的值赋给成员变量width
	}
	void setHeight(int height){
		this.height=height;
		//代码2 将参数的值赋给成员变量height
	}
	int getArea(){
		return width*height;
	}
}
public class E{
	public static void main(String[] args) {
		Rect rect=new Rect();
		rect.setWidth(5);
		rect.setHeight(6);
		System.out.println(rect.getArea());
	}
}

  

  

运行结果为30

                                                       //如果去掉this,则结果为12;  ??这是疑惑??

 

 

 

 

javaBean

javaBean:可以重复使用的软件组件。javaBean是一个java类,通过封装方法和属性,成为了具有某种功能或处理某种业务的对象,简称Bean。

特点:有点像设计模式的概念,可以重复利用,易维护,跨平台。

说明:为了让用这个Bean的应用程序构建工具知道Bean的属性和方法,只需在类的方法上遵守如下规则就行。

1.为这个类提供一个无参的共有的构造方法。

2.把所有的属性定义为私有的。

3.为每个属性提供共有getter(获得属性值)和setter(修改值)的方法。

/*定义一个javaBean*/
public class JavaBeanTest{
    private String name;
    private String age;
    public JavaBeanTest(){
        //不带参数的构造方法
    }
    //每个属性公有的setter和setter方法
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public int getAge(){
        return age;
    }
    public void setAge(int age){
        this.age=age;
    }
}

是先设置set方法还是get方法?有区别?有讲究没有?这是没有讲究的

为什么set方法中有参数和数据类型?而get方法无参数?

 

类的继承:在现有类的基础上构建子类,可以延伸,还可以覆盖,还可

               以向上或向下转型。

class Employee{
    private String name;
    private int age;
    private double salary=3000;//Employee类的成员属性的设置

    public Employee(String name, int age, double salary){
        this.name=name;
        this.age=age;
        this.salary=salary;//构造器的参数设置,方便于参数的传递,把形参的值传给成员变量
    }
    public Employee(){

    }//为什么要空的构造器?这个代码应该可以省略

    public double getSalary(){
        return salary;
    }
    public double getMothlyIncome(){
        return salary;//获得值
    }    

}

class Manager extends Employee{
    private double bonus=1500;
    public Manager(){

    }
    //设置子类特有的方法
    public void setBonus(double bouns){
        this.bonus=bonus;//设置奖金
    }
    public double getBonus(){
        return bonus;//获取并返回奖金
    }
}

public class InheritanceTest{
    public static void main(String[] args) {
        Manager manager=new Manager();
        double sal=manager.getSalary();
        System.out.println("经理的月薪为"+sal);
        System.out.println("经理的奖金为"+manager.getBonus());
    }
}

/*说明:

1.子类只能获取父类非私有的

2.子类不拥有父类的构造器

3.父类不拥有子类所特有的属性和方法

*/

 

继承的优点:

1.可以创建更多的特殊类型   2.提高代码的重用性     3.易于后期维护

 

使用继承的规则:

1.满足is-a关系,而组合满足has-a(   找个例子!!)

2.把通用的属性和操作发到超类中

3.除非使用的方法有意义,否则不使用继承。

 

组合是指在新的类中创建原有类的对象,重复利用已有类的功能

比如汽车是交通工具的一种,则是继承。一个汽车有多个轮胎,则是组合。

class Verhicle{
}
class Car extends Verhicle{
}
//继承

class Tire{
}
class Car extends Verhicle{
private Tire t=new Tire;
}
//组合

在java中组合用的比继承多(接口和组合的方式比用继承有更好的可扩展性)

 

super关键字

作用:通过子类调用父类的构造方法,就用到super关键字,特别是父类私有的,还有被覆盖的情况下(明天找个例子)。

语法格式:super(参数值列表)

public Manager extends Employee{

private double blnus=1500;

public Manager(String name,int age,double salary,double bouns){

super(name,age,salary);

this.bonus=bonus;

}

public void setBounds(double blnus){

this.bouns=bouns;

}

public void getBounds(){

return bonus;

}

}

}

 

复习面向对象--继承,重写,重载,抽象详解

继承:在现有的基础上去构建一个新的类。构建出来的新类被称作子类,现有类称作父类,子类会自动拥有父类所有。继承的优点:  提高了代码的可维护性;  提高了代码的复用性;  让类与类之间产生了继承关系继承... 查看详情

面向对象编程-总复习(代码片段)

目录面向对象基础面向对象编程类与对象对象的属性的查找顺序给对象定制独有属性对象的绑定方法类与数据类型面向对象进阶类的继承类的派生类的组合菱形继承问题多态与多态性类的封装类的property特性类与对象的绑定方法... 查看详情

java面向对象复习(代码片段)

文章目录一、类和对象1.面向对象2.类的定义3.对象的创建4.类在内存中的存储5.类的成员使用6.toString()方法7.static关键字静态成员变量静态成员方法二、封装1.构造方法概念基本使用构造方法的重载this关键字2.private3.封装的好处三... 查看详情

python基础(二十三):面向对象之继承介绍

文章目录面向对象之继承介绍一、继承的概念二、单继承三、多继承 查看详情

面向对象之继承

面向对象之继承对象独有的方法classPerson:h_type='人类'def__init__(self,name):#让对象有用独有的数据每次传入的不一样那么就会产生不一样的数据self.name=name#定义在类中的函数我们称之为方法defeat(self 查看详情

java面向对象基础复习

...类的成员属性和方法   调用父类中的某一个构造函数面向对象三大特征:   继承     继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。     子类拥有父 查看详情

面向对象之继承

面向对象有三大特性:封装 继承  多态今天先来学习一下其中的继承特性继承的概念 什么是继承?继承有哪些优点 (为什么要用继承或者说是使用继承的好处)继承:继承是一种创建新类的方式,在python中,... 查看详情

面向对象之封装,继承

面向对象的主要特征为封装,继承和多肽。封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。优点是信息隐蔽,封装即隐藏。它要求使对象以外的部分不能随意存取对象的内部数据(属性... 查看详情

08java面向对象之继承

JavaSE基础之八08Java面向对象之继承①对象与对象之间的关系关联关系:最弱的一种关系(学生类中包含了老师)继承关系:比较强的一种关系,is-a,你能够用:什么是什么说通聚合关系:比较强的关系,聚集和组合,什么是什... 查看详情

面向对象之封装和继承

面向对象的三大特征:封装、继承、多态。面向对象编程之封装:  封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节有一个最大的优点:信息隐蔽,封装即隐藏。PHP 中通过将数据封... 查看详情

java面向对象之继承(代码片段)

继承(Java面向对象三大特征之一)目录继承(Java面向对象三大特征之一)1.1、使用继承1.1.1编写父类A1.1.2编写子类B,继承父类A注意1.2继承的特性1.3子类继承父类的什么?不能被继承的父类成员:1.4super和this关键字1.5继承条件下... 查看详情

面向对象三大特性之——继承(代码片段)

面向对象三大特性之——继承继承--需要解决代码的重复继承语法:classA:passclassB(A):passB继承A,A是父类,B是子类A是父类(基类超类)B是子类(派生类)子类可以使用父类中的:方法静态变量classAnimal:def__init__(self,name):self.name=namedefea... 查看详情

java面向对象之继承

1继承:Java是的单继承,意味着一个类只能从一个类继承(被继承的类叫做父类【基类】),Java中的继承使用extends关键2.当生成子类对象时,Java默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类对象。接... 查看详情

面向对象三大特征之继承

继承的作用:扩展已有的类的功能,实现代码的复用语法:class子类extends父类(){   类体}classperson{ privatestringname; privateintage; }publicStringsetName(){ name=n;}publicintsetAge(){ age=a;}publicvoidsetAge(inta){ if(a>=0&& 查看详情

java学习面向对象之继承

继承(面向对象特征之一)好处:1:提高了代码的复用性。2:让类与类之间产生了关系,提供了另一个特征多态的前提。 父类的由来:其实是由多个类不断向上抽取共性内容而来的。java中对于继承,java只支持单继承。java... 查看详情

面向对象之继承(代码片段)

一、继承1、什么是继承?  继承是一种新建类的方式,在python中支持一个儿子继承多个爹  新建的类称为子类或派生类  父类又可以称为基类或超类  子类会‘’遗传‘’父类的属性2、为什么要继承?  ... 查看详情

面向对象三大特征之继承,多态

//面向对象三大特性//继承//概念:子类可以继承父类的一切//方法重写:在子类里面对父类的方法进行重写//特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类//override:重写//overload:重载,编程多态//parent::值... 查看详情

java面向对象之继承

  在java中,面向对象毫无疑问是java的重中之重,今天我们来看一看java面向对象的三大特性之一继承。  首先我们来了解一下类的结构是怎样的?  类中主要有成员属性,成员方法,静态属性,静态方法,构造方法(暂不... 查看详情