Java基础(面向对象)--------------封装、继承、多态

Java面向对象

2019.12.15 小雨
作为一名程序源(而且还是单身),周末肯定是学Java
今天就来说一下面向对象!!相信都知道个大概,我们要用我们自己的语言来描述、概括。

Java面向对象有三大特性: 封装、继承、多态;(抽象)

1.继承:

子类继承父类,具有父类的属性和方法(为实现多态做了铺垫)


class A {
    public A() {         // 父类无参构造
              System.out.println("*************************") ;
    }
}
class B extends A {
    public B() {         // 子类构造
              System.out.println("#########################");
    }
}
public class TestDemo {
    public static void main(String args[]) {
              B b = new B() ;   // 实例化子类对象
    }
}
运行结果:
*************************
#########################

构造方法会首先调用父类B的构造方法(默认调用无参构造方法)
子类创建对象调用构造方法首先调用父类的构造方法,然后再调用子类的构造方法;

还有一个小知识点
public class A {
	//私有化   name
	private String name="继承";
	public void Chi() {
		System.out.println("属性的名字:  "+name);
	}
	}

public class B extends A{
	public void Chi() {
		System.out.println("猜对没有");
		}
	public static void main(String[] args) {
		A b =new B();
		b.Chi();
		}
	}
结果为:
猜对没有

在子类重写了父类的方法后就优先调用子类的方法(属性也一样);

2.封装:

装:就是数据、属性和方法都放进类里;封:就是装进去加上权限;内部是透明的之暴露它的访问方法

3.多态:

同一个对象(事物),在不同时刻体现出来的不同状态

public class A {
	 public void run() {
	      System.out.println("狗在奔跑!!!");
	       sing();
	    }
	    public void sing() {
	      System.out.println("狗在唱歌~~~");
	    }

重点看看下面
public class B extends A{
	// 重载run()方法,和父类中的run()方法不是一个
    // 向上转型时会丢失该方法
    public void run(String anotherAnimal) {
        System.out.println(("Lion在追一只" + anotherAnimal));;
        sing();
    }
  // 重写
    public void sing() {
        System.out.println("狗不唱了~~~");
    }
    public static void main(String[] args) {
    	A b =new B();
		b.run();
	}
结果:
狗在奔跑!!!
狗不唱了~~~

这里呢: 向上转型时会丢失该方法(run()参数列表不同,指向父类;sing()中指向子类);

实现多态的必要条件为:

继承、重写、重载(向上转型或者说父类引用指向子类对象)
其实现机制为:调用那个方法是由被引用对象的类型决定,而不是引用变量的类型决定的,
并且调用的方法必须被子类重写

总结:一定要总结成自己的话;要学会自己概述!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值