【Java SE学习】—— java中的继承与组合

继承

定义

子类对父类进行扩展,从一般到特殊的关系,父类放共性,子类放特性

语法格式

在定义子类(sub class)的时候使用 extends 来表明自己继承于哪一个父类(super class)

class SubClass extends SuperClass {    // 子类特有的字段和方法}

注意点

类只允许单继承,不允许多继承,可以多重继承

解释:即extends 后面只能放一个父类,但是父类又可以继承爷爷类

子类可以访问的父类成员

可以直接访问

public或protected修饰的成员

同包中缺省权限修饰符的成员(权限修饰符:public protected private这三种)

不可以直接访问

不同包中缺省访问权限修饰符的成员

private成员

super关键字

定义

代表当前对象的父类对象

作用

  • 在子类的构造方法中调用父类的指定构造器 super(name, age);(必须作为构造方法中的第一条语句)
  • 在子类中访问父类的被隐藏的实例变量或调用父类的被覆盖的实例方法 super.name super.fly();

方法覆盖

原则(一同两小一大)

一同:实例方法签名必须相同

两小:

  • 子类方法的返回值类型和父类方法的返回类型相同或者是其子类
  • 子类方法声明抛出的异常类和父类方法声明抛出的异常类相同或者是其子类(运行时异常除外)

一大:子类方法的访问权限比父类方法访问权限更大或相等

组合

把旧类对象作为新类的成员变量组合进来,用以实现新类的功能

在类A中创建一个类B类型的对象,通过该对象调用类B的方法

组合表达的是“有(has-a)”的关系

// private ArrayUtil util = new ArrayUtil();

public class OldClass {    
    public void method() {        
        System.out.println("旧类中的功能");    
    }}

public class NewClass {    
    // 将旧类组合到新类,作为新类的一个组合成分    
    private OldClass obj = new OldClass();    
    // 重新定义自己的 method() 方法    
    public void method() {        
        // 直接复用 OldClass 提供的 method() 方法来实现自己的 method() 方法        
        obj.method();   
    }}

public class CompositeDemo {    
    public static void main(String[] args) {        
        NewClass n = new NewClass();        
        n.method();    }}
  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值