面向对象

面向对象程序设计特征

封装性:对外有限的公开,隐藏细节,模块代码。

继承性:子类拥有父类全部或部分性质、方法。清晰体现类之间的层次关系。

多态性:方法重载,成员覆写。

类是事物的描述,对象是具体的事物。例如:汽车设计图和汽车。汽车设计图就是类,汽车是对象。

class Car

{

String color=black; 

String country=China;

void show()

{

System.out.println(color+","+country);

}

}

内存表现

对象比较

 “==”是比较对象的地址是否相等,“equals()”是比较内容是否相等。

非静态内部类不能定义静态成员方法,可定义非静态成员方法,静态内部类可定义非静态、静态成员方法。

new一个对象初始化内容(一切言语尽在代码中)

class fu
{
	static 
	{
		System.out.println("a");
		
	}
	{
		System.out.println("c");
	}
	fu()
	{
		System.out.println("d");
	}
}
class zi extends fu
{
	static
	{
		System.out.println("b");
	}
	{
		System.out.println("e");
	}
	zi()
	{
		System.out.println("f");
	}
}
class fuzi
{
	public static void main(String[] args)
	{
		new zi();
	}
}



重载与重写的区别

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同。
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同。



多态

class Person
{
	void show1()
	{
		System.out.println("Person1");
	}
	void show2()
	{
		System.out.println("Person2");
	}
}
class Student extends Person
{
	void show1()
	{
		System.out.println("Student1");
	}
	void show3()
	{
		System.out.println("Student3");
	}
}
class PersonDemo3
{
	public static void main(String[] args)
	{
		Person p=new Student();
		System.out.println(p);
		Student s=(Student)p;
		System.out.println(s);
		s.show3();
	}
}

多态就是创建父类对象用子类实现。

多态中能用子类覆盖的方法,但不能用父类没有定义的方法。

Person p=new Student();是向上转型。

Student s=(Student)p;是向下转型。

向上转型会有精度损失,向下转型能用到父类中没有定义子类中有的方法。

s和p指向同一处内存。




抽象类

抽象类与和抽象方法必须用abstract修饰。

抽象不能被直接实例化。

抽象方法只需要声明,不需要实现。

子类必须覆盖所有抽象方法才能实例化,否则该类也是抽象类。



接口

接口成员数据必须是常量。

所有方法都是抽象方法。

接口可以继承多个接口。



原文地址:https://www.cnblogs.com/lisisong/p/5122626.html