对象转型(casting); 多态; static(静态);单例模式
对象转型:
public class Animals { //父类private String lei;private double weight; //需要get,set一下,外界才可以调用public Animals() {}public Animals(String lei, double weight) {super();this.lei = lei;this.weight = weight;}public void Print() {System.out.println("动物种类" + lei);System.out.println("重量" + weight);}/*public void Sv () {System.out.println("你好");}*/public String getLei() {return lei;}public void setLei(String lei) {this.lei = lei;}public double getWeight() {return weight;}public void setWeight(double weight) {this.weight = weight;}}
public class Dog extends Animals { //子类private String shi;public Dog() {}public Dog(String lei, double weight,String shi) {super(lei, weight); //引用的是父类里的lei,weight构造方法this.shi = shi;}public void Print () { //重写父类里的方法System.out.println("动物种类是" + super.getLei()); //因为是继承,super之后就可以获取System.out.println("重量" + super.getWeight());System.out.println("狗的食物"+ shi);}public String getShi() {return shi;}public void setShi(String shi) {this.shi = shi;}}
public class Main {public static void main(String[] args) {//父类的引用指向子类对象Animals an = new Dog(); //实例化Animalsan.setLei("狗"); an.setWeight(15);/*an.Print();*///父类里的方法,要想设置食物,走下一步强转Dog dg = (Dog) an; //子类Dog新增的属性shi和方法,不能直接访问,要强转dg.setShi("骨头");dg.Print();}}
效果:
多态:
public class Test {public void Printf(Animals an) { //多态if(an instanceof Dog) { //如果an这个对象是一种狗,//instanceof关键字是用来判断变量an是不是这个类或是这个类的子类Dog x =(Dog)an; //强转成狗x.Print(); //输出Dog的构造方法} else if(an instanceof Cat ) {Cat c = (Cat)an; //强转成猫c.Print();//输出Cat的构造方法}else {an.Print(); //animals的方法}}
}
//多态Dog dog = new Dog("狗",15,"骨头"); //先实例化一个DogCat cat = new Cat("猫",5,"老鼠");Test t = new Test();t.Printf(dog); //dog就是an的一种t.Printf(cat);
静态(static):
public class Dog extends Animals { //子类//static 静态private String name;private int age;public static int num; //staticpublic Dog() { //给num一个构造方法num++;}public void Print () {System.out.println("这是第" + num + "只狗");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
//static 的静态利用Dog d1 = new Dog();d1.Print(); //输出第几只狗System.out.println(Dog.num); //static 直接拿类名 . num 输出,输出第一个狗Dog d2 = new Dog();System.out.println(Dog.num); //输出第二只狗d2.Print();
单例模式:
public class HelloWorld {private static HelloWorld helloworld;private HelloWorld () {}private int count;public static HelloWorld getinstance() { //static的不用实例化,直接用if (helloworld == null ) { //如果helloworld是空的话helloworld = new HelloWorld(); //给helloworld实例化}return helloworld; //返回helloworld}public int getCount() {return count;}public void setCount(int count) {this.count = count;}}
//单例模式HelloWorld hw = HelloWorld.getinstance();System.out.println(hw.getCount()); //输出的返回值是为0,因为没有给其赋值HelloWorld hw2 = HelloWorld.getinstance();hw2.setCount(5);System.out.println( hw.getCount());*///输出的是5,因为hw与hw2指向的位置相同
转载于:https://www.cnblogs.com/zuo72/p/7880135.html
对象转型(casting); 多态; static(静态);单例模式相关推荐
- java基础学习之对象转型
对象转型(casting): 1)一个基类的引用类型变量可以指向其子类的对象 2)一个基类的引用不可以访问其子类对象新增加的成员(属性和方法) 3)可以使用引用变量instanceof类名,来判断该引 ...
- Java-对象转型(casting)
对象转型(casting) 一个基类的引用类型变量可以指向其子类的对象 一个基类的引用不可以访问其子类对象新增加的方法(属性,方法) 可以使用 引用 变量instanceof类名 来判断该引用型变量所 ...
- java的知识点13——多态、对象的转型(casting)、final关键字、抽象方法和抽象类、接口的作用、如何定义和使用接口?、接口的多继承、面向接口编程
多态 多态指的是同一个方法调用,由于对象不同可能会有不同的行为.现实生活中,同一个方法,具体实现会完全不同. 多态的要点: 1. 多态是方法的多态,不是属性的多态(多态与属性无关). 2. 多态的存在 ...
- java 父类转子类_Java多态,对象转型,和简单工厂模式。希望对您有帮助!
各位读者老爷们大家好鸭~图图又来了,今天我们要说一下"多态". 怎么理解这两个字呢?可以理解为同一个引用对象的不同表现形态,即将父类的引用指向子类的对象.这是比较官方的书面解释,大 ...
- Java基础-day08-static·static静态代码块·final 关键字·多态·汽车设计综合案例·异常
day09 1.static 是java中的一个关键字 用于修饰成员(成员变量和成员) 1.static是一个关键字 2.static可以修饰成员变量和方法,被修饰的资源就是静态资源 3.静态资源优先 ...
- Java之static静态对象
static关键字: 1.概念: 被该类的所有对象共享使用,不依赖于某个具体的对象,和对象无关,依赖于类,在内存中唯一只有一份 2.类的加载过程 ...
- Java转型,多态和契约设计
类转型 -变量支持互相转化,例如 int a=(int) 3.5; -类型可以互相转型,但是只限制于有类型关系的类. -子类可以转换成父类,而父类不可以转换成子类 -子类可以继承父类所有资产,子类可以 ...
- chapter7 面向对象之向上转型、向下转型及多态
文章目录 1.对象类型转换 1.1向上转型 1.2向下转型 2.多态 1.对象类型转换 将一个类型强制转换成另一个类型的过程被称为类型转换.本节所说的对象类型转换,是指存在继承关系的对象,不是任意类型 ...
- java基础学习总结——对象转型
一.对象转型介绍 对象转型分为两种:一种叫向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型),另一种叫向下转型.转型的意思是:如把float类型转成int类型,把double类 ...
最新文章
- 安装node-sass运行报错 Module build failed: TypeError: this.getResolve is not a function at Object.loader
- 单招计算机专业综合测试,单招计算机专业模习题.doc
- Ring0和Ring3权限级
- spring之bean的作用域scope的值的详解
- SQL Server的Execute As与连接池结合使用的测试
- 是否非要用interface关键字来实现接口?
- 【常见笔试面试算法题12续集三】动态规划算法案例分析3 LIS练习题(最长上升子序列)
- java sdk下载_Java Sdk下载 | 保利威帮助中心
- centos7.5 su: 无法设置组: 不允许的操作(实测补充)(这是乱获取权限导致的,要注意权限问题)以及推荐文件操作
- python中软件包安装
- linux 挂载镜像文件命令,Linux mount命令系统挂载与镜像处理
- 一加3t刷机后还卡_一加3t刷机工具大全+3个ROM
- java实现日历打印项目
- TVS管的参数理解与选型
- php16进制转换源码,php16进制转换
- 7-14 电话聊天狂人 (25分)
- 为什么要创建对象(实例化)?
- C++ Style and Technique FAQ (
- GO冷门又重要的知识点(一)
- 老子《道德经》第十六章
热门文章
- 【简报】超棒的免费Web字体服务:Adobe Edge Web字体
- 黄聪:Loopup集合类笔记
- java多线程设计wait、notify、notifyall、synchronized的使用机制
- 初学者,你应当如何学习C++以及编程-转
- C语言 n的作业,C语言作业练习
- [Python] L1-018. 大笨钟-PAT团体程序设计天梯赛GPLT
- 蓝桥杯 ADV-75 算法提高 简单计算器
- 【note】软件体系结构(6-10章)
- L2-016. 愿天下有情人都是失散多年的兄妹-PAT团体程序设计天梯赛GPLT(广度优先bfs)
- 蓝桥杯 ADV-15算法提高 最大乘积