黑马程序员——java基础——复用类

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流!<span style="font-family: Arial, Helvetica, sans-serif;">-------</span>

复用代码是面向对象程序设计语言的功能之一,身为完全面向对象的java也不例外。

复用代码的方式有两种:组合与继承。

组合语法:将对象引用到新类中即可。

//汽车类
public class Car {

	String car = "汽车";
}
//发动机类
public class Motor {

	String motor = "发动机";

}
// 组合
public class Test {
	public static void main(String[] args) {
		Car c=new Car();
		Motor m=new Motor();
		System.out.println(m.motor+"是"+c.car+"的一部分");
	}
}

继承语法通过关键字extends来实现,当继承某类时,会自动得到该类的所有域和方法。

//动物类
public class Animal {

	public void sleep(){
		System.out.println("睡");
	}
	public void eat(){
		System.out.println("吃");
	}
}
//猴子
public class Monkey extends Animal {

	public Monkey(){
		super();
	}
	
	public void swarm(){
		System.out.println("爬树");
	}
	
}

1、继承是所有面向对象语言不可缺少的组成部分。当创建一个类时,这个类总是在继承其他类。除非已明确指出要从其他类继承。否则隐式从java的标准类Object进行继承。 

2、继承并不只是复制父类接口。当创建了一个子类对象时,该对象包含了一个父类的子对象。这个子对象与用父类直接创建的对象是一样的。二者区别在于,前者被包装在子类对象内部,而后者来自于外部。1

3、使用关键字 super() 在子类中调用父类构造器来进行初始化。

4、如果父类拥有某个已被多次重载的方法名称,那么在子类重新定义该方法名称并不会屏蔽其在父类中的任何版本。因此,无论是在该层或者它的父类中对方法进行定义,重载机制都可以正常工作。

5、可以使用javaSe5新增加的@Override注解,来防止方法重载而非覆盖。

6、组合与继承之间选择:

a、组合与继承都允许在新的类中放置子对象,组合是显式地,而继承是隐式的。

b、组合通常用于想在新类中使用现有类的功能而非它的接口。

c、继承通常是使用某个现有类,并开发它的拓展版本。

d”is--a”关系用继承”is---has”关系用组合。

7、继承和组合都能从现有类型生成新类型。组合一般是将现有类型作为新类型底层实现的一部分来加以复用,而继承复用的是接口。

8、尽管面向对象编程对继承极力强调,但开始一个设计时,一般应优先选择使用组合,只在确实必要时才使用继承。因为组合更具灵活性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值