热门标签

, ,

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系QQ403593407!本站提供的所有教程/文章/软件均仅供测试学习,造成的后果与本站无关!请不要用作非法用途,本站将记录用户下载记录做保存,如用户后期有违法行为方便提供给警方。

Java学习教程系列(六)类和类之间的关系

Java学习(六)类和类之间的关系

类和类之间的关系:

A is-a B 泛化(继承 实现)
A has-a B 包含(组合 聚合 关联)
A use-a B 依赖(依赖)(need-a)

泛化

  • 子类继承父类,通过一个关键字:extends

  • 子类的对象可以调用父类中(public/protected)的属性和方法 当做自己的来使用。

  • 子类可以添加自己独有的属性和方法

  • 构造方法严格意义上来说不算是子类继承过来的,只是单纯的在子类调用构造方法时默认调用父类的构造方法,父类构造方法之前自动执行父类的程序块

  • 如果子类从父类中继承过来的方法无法满足子类的需要,可以在子类中重写(覆盖)父类的方法–>方法重写override

  • 每一个类都有继承类,如果不写extends,则默认继承Object

  • Java中继承是单个存在的(单继承),每一个类只能有一个继承类(在extends后面只能写一个类)

  • this和super的使用

    • this和super都是指代词,代替的是对象

    • this代替的是当前执行方法时的那个对象,不一定是当前类的

    • super代替的是当前执行时对象的父类对象

    • 都能调用一般属性和方法

    • 可以放置在成员的任意位置(属性,方法,构造,块)

    • 可以调用构造方法(只能放在构造方法的第一行)

    • this和super在构造方法中调用另一个类的构造方法不能同时出现在第一行

例:

父类:

public class Animal{
   
}

子类:

//通过extends来继承父类
public class Person extends Animal{
   
}

包含

  • 包含关系(组合,聚合,关联)

  • 从亲密程度上来讲不太一样

    • 整体和部分的关系,可以分割,后来形成在一起

    • 整体和部分的关系,创建时有可能是分开的

    • 整体和部分的关系,不可分割,要出现都出现,要消亡都消亡

    • 组合–>人和大脑 人和心脏的关系

    • 聚合–>汽车和车轮子 电脑和主板

    • 关联–>人有汽车 人有电脑

  • 从Java程序来描述这样的关系,通过一个类的对象当做另一个类的属性来存储

例:

父类:

public class Car{
   public String brand;//汽车品牌
   public String color;//汽车颜色
   public Wheel wheel;//车里面有一个轮子(包含关系)
   //方法
   public void showCar(){
       System.out.println("车的品牌是" brand ",车的颜色是" color "车里面有" wheel.brand "品牌" wheel.color "色的轮子");
       wheel.turn();
   }
   //构造方法
   public Car(){};
   public Car(String brand,String color,Wheel wheel){
       this.brand = brand;
       this.color = color;
       this.wheel = wheel;
   }
}

子类:

public class Wheel{
   public String brand;//车轮的品牌
   public String color;//车轮的颜色
   //方法
   public void turn(){
       System.out.println("车轮在转");
   }
   //构造方法
   public Wheel(){};
   public Wheel(String brand,String color){
       this.brand = brand;
       this.color = color;
   }
}

主方法:

public class Test {
   public static void main(String[] args){
       Car car= new Car("玛莎拉蒂","黄",new Wheel("米其林","蓝"));
       car.showCar();
   }
}

依赖

  • 不是整体和部分的关系,是因为某一件事产生了关系,临时组合在了一起,这件事做完了,关系即解散。如(屠夫杀猪、屠夫与猪的关系)

Java程序体现的形式为:

一个类的方法中使用到了另一个类的对象

  • 可以在方法中传递参数

  • 可以在方法中自己创建

例:

父类:

public class Butcher {
   //屠夫的类
   //杀猪方法
   public void killPig(String name){
       Pig pig=new Pig(name);
       pig.beKilled();
   }
}

子类:

public class Pig {
   public String name;//猪的名字
   public int weight=100;//猪的体重
   //方法
   public void beKilled(){
       System.out.println(name "被杀了");
   }
   //构造方法
   public Pig(){};
   public Pig(String name){
       this.name = name;
   }
}

主方法:

public class Test {
   public static void main(String[] args){
       //新建一个屠夫
       Butcher butcher = new Butcher();
       //执行杀猪方法
       butcher.killPig("佩奇");
   }
}

未经允许不得转载:作者:admin, 转载或复制请以 超链接形式 并注明出处 夜河资源网
原文地址:《Java学习教程系列(六)类和类之间的关系》 发布于2019-12-04

分享到:
赞(0)

评论 抢沙发

2 + 5 =


电信无限流量卡
无限流量卡限时9.9元全国包邮!不限速无套路!25元/月享100G流量!35元/月享200G流量!55元享受500G流量!!
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册