java的封装和多态

封装

1、什么是封装:
隐藏属性(字段)提供一个公共的可供外部访问的方法(getter,setter)
2、实现:通过private关键字将属性私有化,然后通过getter和setter方法进行访问
3、this.属性,方法。够造器。调用当前类的属性,方法,构造器当调用构造方法是this.方法要在首行

够造器
语法 :
权限修饰符 方法名(参数){

}
作用:
1、创建对象
2、在创建对象时可以进行属性赋值
创建够造器的规则
1、在类创建时会默认自动创建一个无参的够造方法
2、当手动添加了一个够造器时,系统则不会为它提供默认的够造方法了
3、构造方法的方法名和类名一致
4、权限修饰符为public protected 缺省 private

关键字 package 、import
package包名:可以用.进行分隔;必须位于的(import前)首行
import 包名.类名;类名也可以用“*”代替表示导入该包中的所有的类
创建类时系统会自动加载java.lang包中的资源,比如,String,System

	package Review.com.aura;

	public class Packaging {
		public  static  void main(String[] args){
	Property pr=new Property("王明",01);
	System.out.println(pr.toString());
	System.out.println(pr.getId());
	System.out.println(pr.getName());

		}
	}
	//封装属性
	class Property{
		private  String name;
		private  int id;

		public Property() {
			super();
		}
		public Property(String name,int id) {
			this.id=id;
			this.name=name;
		}
		public String getName() {
			return name;
		}

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

		public int getId() {
			return id;
		}

		public void setId(int id) {
			this.id = id;
		}

		@Override
		public String toString() {
			return "Property{" +
					"name='" + name + '\'' +
					", id=" + id +
					'}';
		}
	}

多态

多态的体现:
1、方法重载和重写
2、子类对像的多态性

语法
父类 队像名=new 子类();//父类引用指向子类对象(子类可以替换父类出现的任何位置)

对象名.方法();
//编译时调用法父类有的方法,如果父类没有会报错,如果父类中的方法子类也有会实现重写
//子类有父类中没有。调用子类中的方法进行instanceof进行判断在进行强转
子类中没有父类中有会直接调用父类的放发
编译时看等号左边运行时看等号右边

向上转型:子类转父类
向下转型:父类引用子类的对象转子类,需要用instanceof进行判断
对象 instanceof 类型(子类,父类)
注意:       
属性不具备多态
package Review.com.aura;
//多态
public class Polymorphic {
    public  static void  main(String[] args){
        //父类引用指向子类对象
    People st=new Student("小明",10,20);
    //调用父类的特有的方法
    st.demo();
    //调用被子类重写的方法
    st.show();
    //判断是st否是Student类的实例
    if (st instanceof Student ){
        //进行向下转型
    Student su=(Student)st;
    //调用子类特有的方法
    su.test();
            }

        }
}
class People{
    String name;
    int age;
    int id;

    public People() {
        super();
    }
    public People(String name,int age,int id) {
        this.age=age;
        this.id=id;
        this.name=name;

    }
    public  void show(){
        System.out.println("我的名字是"+name+"编号"+id+"年龄"+age);
    }
    public  void demo(){
        System.out.println("这是父类的方法");
    }
}

class Student extends  People{

    String name;
    int age;
    int id;

    public Student() {
        super();
    }
    public Student(String name,int age,int id) {
        this.age=age;
        this.id=id;
        this.name=name;

    }
    public  void show(){
        System.out.println("学生的名字是"+name+"学生编号是"+id+"年龄是"+age);
    }
    public void test(){
            System.out.println("这是一个测试的方法");
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值