Java面向对象——黑马训练营

本文深入解析Java中的封装、继承、多态等面向对象核心概念,通过具体实例展示如何实现类之间的关系与方法复写,同时阐述多态带来的程序扩展性与安全性提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------



面向对象

 封装:其实就是包装的意思,封装就是把事物中的细节给隐藏了,需要对外提供一些可以访问这些隐藏细节的方式

封装的好处:1.封装隐藏了细节,可以提高程序的安全性

2.封装可以提高程序的维护性

3.提高程序的复用性

class Person {
	// 使用private将对象进行私有化
	private String name;
	private int age;

	// 将对外部提供方法需要使用public公共的
	// 赋值方法使用setxxx
	// 获取值方法使用getxxx
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}
继承: java中使用extends关键字来表示继承关系 样式:子类 extends 父类(注意final修饰的类不能被子类继承)

class person{
	
}
class student extends person{
	
}

类student继承与person,所以在上述代码块中,person类称为父类(基类),student类成为子类(导出类)

如果两个类存在继承关系,则子类会自动继承父类的方法和变量,在子类中可以调用父类的方法和变量。在java中,只允许单继承,也就是说 一个类最多只能显示地继承于一个父类。但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类。
对于子类可以继承父类的成员方法,如果在子类中出现同名成的函数,称为复写(重写),则子类的函数会覆盖父类的函数,如果子类需要访问父类同名函数是,使用super关键字(父类构造器)来进行应用。


多态

class Persion{
	public String name="——————>父类";
	public void base(){
		System.out.println("父类的普通方法");
	}
	public void text(){
		 System.out.println("父类的被覆盖的方法");
	}
}

class Student extends Persion{
	public String name="——————>子类";
	@Override
	public void text() {
		System.out.println("子类的覆盖父类的方法");
	}
	public void show(){
		System.out.println("子类的普通方法");
	}
}
public class Dometext {
	public static void main(String[] args) {
		//编译时类型和运行时类型完全一样,因此不不存在多态
		Persion p=new Persion();
		System.out.println(p.name);
		p.base();
		p.text();
		
		Student stu=new Student();
		System.out.println(stu.name);
		//复写父类方法
		stu.text();
		stu.show();
		
		//下面编译时类型和运行时类型不一样,多态发生
		Persion persion=new Student();
		System.out.println(persion.name);
		persion.base();
		persion.text();
		
	}
}
定义父类类型的应用指向子类的对象即可以使用子类类部的方法,又可以抽取父类的共性。

多态的优点:提高了程序的扩展性。

多态的缺点:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中的方法,不可以访问子类中的方法




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值