继承、封装、多态

继承、封装、多态(Java)

1.继承

/**
 * @author 张辉
 * 继承(extends):继承就是在一个类中继承另外一个类(先当于继承遗产的问题。)
 */
public class ext {
	public static void main(String[] args) {
		Student student = new Student("小六", 18, 05, "computer");
		student.talking();
		student.study();
	}
}
class Human {
	String name;
	int age;
	int id;
	public void wolk() {
		System.out.println("Human can run!");
	}
	public void talking() {
		System.out.println("Huamn can speak Chinese");
	}
}
class Student extends Human { //继承
	String major;
	public void study() {
		System.out.println(this.id + "正在学习!");
	}
	public void talking() { // 重载human中的talking方法
		System.out.println("Student can speak Chinese and English!");
	}
	public Student(String name,int age,int id,String major) {
		this.name = name;
		this.age = age;
		this.id = id;
		this.major = major;
	}
}

2.封装

/*
 * @张辉
 * 封装:封装就是为了将内部细节封装起来,方便维护,简化外部调用;比如一台电视机(老式),
 * 你不必为了调台,而去电视机主板上更改,而是直接通过外部按钮直接解决,我们所提供的按钮就是封装的体现。
 * 
 **访问权限
 * public:可以访问该项目包中所有的类。(权限最大)
 * private:访问权限在同一个类中(权限最小),他的权限就只能让本身类使用。
 * protected:访问权限同一个包中的类以及其他包中的子类(继承)。
 */
public class TestFengZhuan {
	Student s = new Student();
}

/*
 * private修饰的就只能在自己的类中使用,不能被其他外部使用。
 */
class Human {
	private String name;
	private int age;
	private int id;
	protected void wolk() { //这儿可以使用name变量。但是name变量在外边就不可以使用了(此类之外),这儿的wolk()方法就只有同类或者子类(继承了Human的子类)才可以使用。
		System.out.println(this.name + " can run!");
	}
	private void talking() { //只有这儿可以调用talking()方法。
		System.out.println("Huamn can speak Chinese");
	}
}

3.多态

/*
 * @张辉
 * 多态:多态是方法的多态,不是属性的多态(多态与属性无关)
 * 		多态三个必要条件:继承,方法重写,父类引用指向子类的对象。
 * 		父类的引用指向子类对象后,用该父类调用子类重写的方法,此时这就是多态。
 * 最主要的还是父类指向子类(继承)的对象,不仅如此还必须是同一个方法(也就是方法的重写),
 */
package cn.zhang;

public class duotai {
	public static void main(String[] args) {
		Animal a1 = new Cat();//自上而下的自动转型。
		animal(a1);
		Animal a2 = new Dog();//自上而下的自动转型。
		animal(a2);
	}
	static void animal(Animal a) { //这儿就是多态。
		a.shut();
	}
}
 class Animal {
	 public void shut() {
		System.out.println("叫了一声!");
	}
 }
 class Dog extends Animal {
	 public void shut() {
		System.out.println("汪汪汪!");
	} 
 }
 class Cat extends Animal {
	 public void shut() {
		System.out.println("喵喵喵!");
	} 
 }

多态还是相当难理解的,至少我现在还不是太理解。(可以说不会用!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值