Java基础——封装、继承、多态

Java基础——封装、继承、多态

——小实例快速成长

抽象:

1.目的:将复杂的东西简单化,将繁乱的内容有序化。

2.过程:对相同、相似的东西合而为一,对不同的内容进行归门别类。

3.结果:类、接口。

 

封装:

1.目的:化零为整,将零散的内容进行归属,进行权限控制。

2.过程:将某对象的属性、方法(功能)统一到其名下,并分别设置。适当的权限进行控制管理。

3.结果:对象,接口。

 

继承:

1.求大同存小异;在一个系列内,大部分都有的内容,就划归父类;子类将父类的内容继承过来,可以有自身的一些发展和个性。

2.增强复用性、可扩展性。

 

多态:

随机应变,应需而动。

1.运行时多态——程序运行起来后,接口根据当时实情进行智能分配和对接。

2.编译时多态——预先写好,子类在父类基础上的对相同功能的性能改变。

 

函数(function):

1.结构:分五个组成部分——权限修饰符、函数名、参数、函数体、返回值类型。(不同情况下,有些内容需要省去)

2.重写:相同函数名及参数的函数体的不同实现。

3.重载:对某一功能的结构级的彻底变革。参数必变、返回值类型或函数体实现可以有变(其中“参数”的个数或参数类型至少有一个发生改变)。

 

示例代码:

public class TestBase {
	public static void main(String[] args) {
		//Cat cat1 = new Cat();  //提示“实际参数列表和形式参数列表长度不同”的错误
		Cat cat2 = new Cat("波斯");
		Wolf wolf1 = new Wolf();
		wolf1.run("蒙古狼");
		Wolf wolf2 = new Wolf("蒙古狼");
		wolf2.run("蒙古狼");
		Tiger tiger = new Tiger();
		tiger.eat("肉");
		
		Animal animal = new Wolf("西北狼");
		animal.run();
	}
}

//抽象类
abstract class Animal {
	String Food;
	protected String Name;
	
	//无参构造函数
	public Animal(){
		System.out.println("\n——父类 无参构造方法!\n");
	};
	
	//有参构造函数
	public Animal(String name){
		this.Name = name;
		System.out.println(Name + "的 父类 有参构造方法!\n");
	}
	
	//抽象方法
	abstract void eat(String food);
	
	//一般方法
	public void run(){
		System.out.println("父类一般方法run()" + "I like run!\n");
	}
}

//继承 父类Animal
class Cat extends Animal {
	//有参构造函数
	public Cat(String name){
		//初始化父类构造方法
		super(name);
		System.out.println("子类Cat有参构造函数!\n");
	}
	
	public void eat(String food) {
		//成员变量Food继承自父类——protected成员变量
		this.Food = food;
		System.out.println("猫以"+food+"为食!\n");
	}
}

//继承 父类Animal
class Wolf extends Animal {
	//无参构造方法
	public Wolf(){
		//非显示调用父类构造方法,当程序使用本无参构造方法是,系统将自动调用父类无参构造方法
		
		//检验————无参构造函数调用的时机
		System.out.println("调用了Wolf类的无参构造方法!\n");
	};
	
	public Wolf(String name){
		//非显示调用父类构造方法,当程序使用本有参构造方法是,系统将自动调用父类无参构造方法
		
		//成员变量Name继承自父类——public成员变量
		this.Name = name;
		System.out.println("子类Wolf有参构造函数!\n");
	}
	public void eat(String food) {
		//成员变量Food继承自父类——protected成员变量
		this.Food = food;
		System.out.println("狼以"+food+"为食!\n");
	}
	
	//重写 父类的 一般方法
	public void run(){
		System.out.println("子类wolf重写父类的run()方法" + 
					"I don't like run, but I must be to do.\n");
	}
	
	//重载 父类的 一般方法
	public void run(String name){
		System.out.println(name + "子类wolf重载父类的run()方法——" + 
					"name" + "说:\"" + "I don't like run, but I must do.\"\n");
	}
}

//继承 父类Animal
class Tiger extends Animal {
	public void eat(String food) {
		this.Name = "东北虎";
		System.out.println("我的名字叫:" + Name + "; 我以" + food + "为食!\n");
	} 
}

运行效果图:

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。