java--继承

为什么使用继承?

将重复的代码放到父类中使用继承来进行使用

可以帮助我们后期修改代码和减少代码量

比如说Dog类和Penguin类

下图中两个类图没有继承之前的属性和方法

继承后

由此可见当将重复的属性和方法抽出来之后,Dog类和Penguin类就减少了很多代码。

注意: 子类与父类是is-a的关系。也就是说可以有多个子类,但只有一个父类!!

如何使用继承

首先将重复的代码和属性抽取出来,将他们放在一个类中,类名自定义如:

class Pet{
//可以放重复的属性和方法,Pet是类名,可以自定义。
}

我们将Pet作为父类,Dog继承Pet类,如  

 

class Dog extends Pet{
  //子类中的方法和属性
}
//关键字extends表示继承的含义

重写和继承中的构造方法

/*
*继承Pet类
*/
public class Dog extends Pet{
private String strain; //品种
/**
*有参构造方法
*name 名称
*strain 品种
*/
public Dog(String name,String strain){
super(name);  //调用父类的name赋值要用super
this.strain=strain;
}
public String getStrain(){  
return strain;

}

/*
*
* 重写父类的print()方法
*
*/
public void print(){ 
super.print();   //调用父类print方法
System.out.println("性别是:"+this.sex+"。");
}

}

子类中,根据需求可以从父类继承的方法重新编写,方法的重写或方法的重载

 super关键字可以访问父类的成员

注意

super只能在子类或子类的构造方法中使用

super可以访问父类的属性、方法、和构造方法

super不能访问被private访问修饰符的类

super不能和this一起出现在同一个构造方法中

super必须在构造方法中的第一行

重写条件和重载条件

1.重写的方法名和返回类型、形参相同,方法体不同

2.重载的方名相同,类名相同,形参不同

调用构造方法

1.在类中,创建构造方法时,会自动生成一个无参构造方法

2.当调用构造方法时,必须调用有相同的参数的构造方法

3.当类中没有写构造方法时,会自动生成一个无参构造方法,当有构造方法时(有参和无参一样),自动生成的无参方法就会被替换掉。

4.构造方法不能被继承

在类方法中不能出现this和super关键字

在实例方法中,this,super语句不要求是第一行,可以共存

 抽象类

抽象类和抽象方法

将Pet抽象

public abstract class Pet{

	protected String name="无名氏";
	protected int health=100;
	protected int love=0;
/**
*有参构造方法
*
*/
	public Pet(String name) { 
		this.name=name;
	}

	public void print() {
		System.out.println("宠物的自白\n我的名字叫"+this.name+",健康值是"+this.health+",和主人的亲密度是"+this.love+"。");
	}
}

 abstract 是抽象类的关键字

注意:

1.抽象类和抽象方法都通过adstract关键字来修饰

2.抽象类不能实例化,抽象类可以有一个或者多个抽象方法,全部的方法都是可以是抽象的

3.抽象方法不能有方法体,有抽象方法的类必须声明为抽象类,子类必须重写所有的抽象方法才能实例化,否者还是抽象类,不能实例化。

final关键字 

1.final修饰的方法不能被重写

2.final修饰的变量(包括成员和局部)将变成常量,只能赋值一次,不能进行二次赋值

3.final修饰的类不能被继承

 abstract可以来修饰类和方法,不能来修饰属性和构造方法,final可以修饰类、方法和属性,不能修饰构造方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值