Java继承 封装 多态

继承概念:简单说就是一个类使用extends来关联另一个已存在的类(API中的或者自己写的),Java继承是面向对象的最显著的特征之一并且一个类只能单继承(只能继承一个 类)不能多继承。

继承特点:继承是单一的;

                    继承关系是可以传递的;

                    层次关系鲜明;

总的来说:Java继承是单一的,可以调用父类的方法(一般来说不能调用父类的构造方法),虽然不能多继承,但是Java提供了接口这个概念,来弥补继承的单一性。

</pre></p><p><span style="white-space:pre"></span>例如:</p><pre name="code" class="java"><span style="color:#33cc00;">// 父类</span>
class person{
	
	public void count(){
		int x=3,y=4;
		System.out.println("x+y="+(x+y));		
	}	
}
<span style="color:#33cc00;">//主类(子类)
//Demo继承的person Demo是子类,person是父类,
//继承使用关键字extends</span>
public class Demo extends person{
<span style="background-color: rgb(255, 255, 255);"><span style="color:#33cc00;">//	主函数</span></span>
	public static void main(String[] args) {
		// TODO Auto-generated method stub
<span style="color:#33cc00;">//		建立对象demo</span>
		Demo demo = new Demo();
<span style="color:#33cc00;">//		使用对象调用父类的方法count()。
</span>		demo.count();
	}
}

类是对一个或几个相似对象的描述,是具有相同属性和方法的一组对象集合。类中的数据称为成员变量,对数据的操作称为成员方法。

类的语法格式:[修饰符]class 类名[extends 父类名] [implements 接口名序列]{

类主体

    }

对象

创建对象。在Java中创建对象包括声明对象、为对象分配内存空间两部分。

(1)声明对象格式

类名  对象名;

(2)为对象分配内存空间要使用new运算符和类的构造放法。

格式:对象名 = new 类名([参数列表]);

(3)以上两步可以写到一起

类名  对象名 =new  类名([参数列表]);

抽象类

1. 定义

在Java中用abstract修饰的类称为抽象类,方法为抽象方法,抽象方法只有声明没有具体实现,谁实现抽象类就必须实现里面的所有方法

定义抽象类的格式:

abstract  class 类名{

  .......

}

定义抽象方法:

abstract 返回值类型  方法名([参数])

如下:

abstract class Employee
{
int basic = 220;
abstract void salary();
}

接口

1. 定义

创建接口的语法如下:

[修饰符]类型  接口名[extends 父接口列表] {

[修饰符]类型 属性名=值;

返回值类型  方法名 (参数列表);

}

2. 接口实现

class 类名 implements 接口名[ ,接口名...555555555555]

注意:修饰接口的修饰符只有public和默认修饰符两种。

    可以多重继承,接口只能继承接口,不能继承类。

    属性定义时必须赋值,是常量,属性的修饰符默认为final、static。

    接口中的方法必须是抽象方法。

封装

封装的目的:

(1)隐藏类的实施细节

(2)迫使用户通过接口去访问数据

(3)增强代码的可维护性

如下:

class Card
{
private String cardNumber = null;
String getNumber(){
return cardNumber;
}
void setNUmber(String cardNumber){
this.cardNumber = cardNumber;
}
}

注意:抽象类不一定要包含抽象方法,但是有抽象方法的类一定是抽象类。

多态

多态的表现形式主要有方法的重载和方法的覆盖

1.方法重载

方法重载实际上就是方法名相同,但是参数不同。

例如:

class Card
{
String cardNumber=null;
Card(){  }
Card(String cardNumber){
this.cardNumber=cardNumber;
}

2.方法覆盖

类继承过程中,子类方法跟父类方法名字相同,并且传递参数完全一样,称子类覆盖父类的方法。

例如:

public class Demo1 extends Animal{

	void sound(){
		System.out.println("aaaa");
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Demo1 d= new Demo1();
		d.sound();
	}

}
class Animal{
	void sound(){
		System.out.println("wangwang");
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值