栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习之路---面向对象(三大特征——封装,继承,多态)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习之路---面向对象(三大特征——封装,继承,多态)

面向对象三大特征之一 ——封装 封装的概念:

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
把尽可能多的东西藏起来,对外提供便捷的接口

简而言之:把所有属性都隐藏起来

为什么要封装? 封装的好处:

如何封装:

面向对象三大特征之一 ——继承 继承的概念:

继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。

将重复代码抽取到父类中:
示例:

将两个类中的相同属性提取到同一个类中,使他们产生某种关系,这就是继承:

继承的格式:


示例:

继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类

继承的优点与缺点:

继承中的关键字: this关键字:

可以看到一半 自动生成的 get和set方法中存在this关键字,这个关键字一般指的是成员变量。

super:

子类访问父类的方法和属性时可以使用super
(1)使用super关键字,super代表父类对象
(2)在子类构造方法中调用且必须是第一句
(3)不可以访问父类中定义为private的属性和方法

访问父类构造方法
super();    
super(name);
访问父类属性
super.name;
访问父类方法
super.print();
小结:

this和super的区别:

继承中构造方法的访问:

在main函数中访问子类的方法是,会先访问父类的无参构造方法
示例:
子类

public class Zi extends Fu {

    public  Zi(){
//        super();
        System.out.println("Zi无参方法被调用");
    }

    public Zi(int age){
        System.out.println("Zi有参方法被调用");
    }
}

父类:

public class Fu {
    public Fu(){
        System.out.println("Fu无参方法被调用");
    }
    public Fu(int age){
        System.out.println("Fu有参方法被调用");
    }
}

测试类:

public class demo {
    public static void main(String[] args) {
       Zi z=new Zi();

    }
}


所以在继承父类时要尽量完成父类无参方法的初始化否则会报错。
可以使用super修改调用的方法:
public class Zi extends Fu {

    public  Zi(){
//        super();
        System.out.println("Zi无参方法被调用");
    }

    public Zi(int age){
        super(15);
        System.out.println("Zi有参方法被调用");
    }
}

再次运行主函数时看到控制台成功修改父类调用的方法:

面向对象三大特征之一 ——多态

同一种事物,由于条件不同,产生的结果也不同

多态的概述:

多态中成员访问特点:

示例:
猫类:

package test;

public class Cat extends Animals {
	int age=20;
	@Override
	public void eat() {
		System.out.println("猫吃鱼");
	}

	public void play() {	
		System.out.println("猫玩球");
	}
}

动物类:

package test;

public class Animals {
	int age=30;
	public void eat() {
		System.out.println("动物要吃饭");
	}
}

测试类:
可以看到编译未通过

可以看到变量访问的是父类中的年龄

小结:

多态的好处和弊端:

多态的转型:

向上转型:

向下转型:

例如子类中有自己的方法,多态不能调用子类的特有方法,这时候可以用到向下转型:

这时就可以使用子类特有的方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014044.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号