继承

什么是继承

  • 继承是面向对象编程思想的主要特征,java通过继承实现代码的复用。

子类访问父类

  • 实现类继承关系的父子类,在创建子类对象时,无论是调用无参构造还是有参构造,都会默认先创建父类对象,并且是通过父类的无参构造完成实例化的。
  • super 用作子类访问父类的属性和方法。
  • 访问属性” super.属性名
  • 访问方法” super.方法名()

子类访问权限

子类只能访问父类的public和protected修饰的属性和方法
在这里插入图片描述

方法重写

  • 子类在继承父类方法的基础上,对父类方法重新定义并覆盖操作叫做方法重写。
  • 方法重写的规则
    • 父子类的方法名相同。
    • 父子类方法参数列表相同。
    • 子类方法返回值与父类方法返回值类型相同或者是其子类。
    • 子类方法的访问权限不能小于父类。
public class A {
	public void show() {
		
	}
}
//*********************************************************************//
public class B extends A {
	public void show(){
		System.out.println("Happy!");
	}
	
}
//*********************************************************************//
public class Test {
	public static void main(String[] args) {
		B b = new B();
		b.show();
	}
}
  • 方法重写 VS 方法重载
    在这里插入图片描述

进阶

用继承进行设计

在这里插入图片描述

class Actor {
	public void act() {
		System.out.println("act()...........");
	}
}

class HappyActor extends Actor {
	public void act() {
		System.out.println("HappyActor");
	}
}

class SadActor extends Actor {
	public void act() {
		System.out.println("SadActor");
	}
}

class Stage {
	private Actor actor = new HappyActor();

	public void change() {
		actor = new SadActor();
	}

	public void performPlay() {
		actor.act();
	}
}

public class Transmogrify {
	public static void main(String[] args) {
		Stage stage = new Stage();
		stage.performPlay();
		stage.change();
		stage.performPlay();
	}
}


返回面向对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值