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");}}//继承 父类Animalclass 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");}}//继承 父类Animalclass 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");}}//继承 父类Animalclass Tiger extends Animal {public void eat(String food) {this.Name = "东北虎";System.out.println("我的名字叫:" + Name + "; 我以" + food + "为食!\n");} }
运行效果图:
上帝助自助者。